read_html 没有从简单的 html 页面检索所有数据,而是返回不完整的 html?
read_html not retrieving all data from simple html page, instead returning incomplete html?
read_html()
通常 returns 给定 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()
的东西
这看起来像是将页面中的赋值运算符视为未闭合的标记。
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")
read_html()
通常 returns 给定 url.
但是当我尝试 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()
的东西
这看起来像是将页面中的赋值运算符视为未闭合的标记。
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")