read_html() biasanya mengembalikan semua halaman html untuk url tertentu.

Tetapi ketika saya mencoba url ini, saya dapat melihat bahwa tidak semua halaman dikembalikan.

Mengapa ini (dan yang lebih penting, bagaimana cara memperbaikinya)?

Contoh yang dapat direproduksi

page_html <- "https://raw.githubusercontent.com/mjaniec2013/ExecutionTime/master/ExecutionTime.R" %>% 
  read_html

page_html %>% html_text %>% cat
# We can see not all the page html has been retrieved

# And just to be sure
page_html %>% as.character

Catatan

  • Sepertinya github baik saja dengan kunjungan bot, jadi saya rasa tidak ini masalah yang berkaitan dengan github
  • Saya mencoba goresan yang sama dengan perpustakaan Nokogiri Ruby. Ini memberikan hasil yang persis sama dengan read_html. Jadi sepertinya itu bukan sesuatu yang khusus untuk R atau read_html()
4
stevec 21 September 2019, 15:08

1 menjawab

Jawaban Terbaik

Sepertinya ini memperlakukan operator penugasan di halaman sebagai tag yang tidak ditutup.

fakepage <- "<html>the text after <- will be lost</html>"

read_html(fakepage) %>%
  html_text()

[1] "the text after "

Karena halaman yang Anda cari adalah file teks biasa, Anda dapat menggunakan readr::read_file() dalam contoh ini.

readr::read_file("https://raw.githubusercontent.com/mjaniec2013/ExecutionTime/master/ExecutionTime.R")
1
27 ϕ 9 21 September 2019, 13:31