read_html不是从简单的html页面检索所有数据,而是返回不完整的html?

时间:2019-09-21 12:08:11

标签: r rvest xml2

read_html()通常返回给定URL的所有页面html。

但是当我尝试使用this url时,我看到返回的页面并非全部。

为什么会这样(更重要的是,我该如何解决)?

可复制的示例

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

注释

  • 看起来github是okay with bots visiting,所以我认为与github无关不是一个问题
  • 我用ruby的Nokogiri库尝试了相同的刮擦操作。其结果与read_html完全相同。因此,看起来它不是特定于R或read_html()
  • 的东西

1 个答案:

答案 0 :(得分:1)

这似乎将页面中的赋值运算符视为未关闭的标签。

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

read_html(fakepage) %>%
  html_text()

[1] "the text after "

由于要访问的页面是纯文本文件,因此在这种情况下可以使用readr::read_file()

readr::read_file("https://raw.githubusercontent.com/mjaniec2013/ExecutionTime/master/ExecutionTime.R")