open.connection中的rvest错误(x," rb"):达到了超时

时间:2015-10-23 05:54:30

标签: r rvest

我试图从http://google.com抓取内容。 错误信息出来了。

library(rvest)  
html("http://google.com")
  

open.connection错误(x," rb"):
  达到超时另外:
  警告信息:' html'已弃用。
  使用' read_html'来代替。
  请参阅帮助("已弃用")

因为我使用公司网络,这可能是由防火墙或代理引起的。我尝试使用set_config,但没有工作。

5 个答案:

答案 0 :(得分:24)

在办公室网络中的代理工作后,我遇到了同样的Error in open.connection(x, “rb”) : Timeout was reached问题。

这对我有用,

library(rvest)
url = "http://google.com"
download.file(url, destfile = "scrapedpage.html", quiet=TRUE)
content <- read_html("scrapedpage.html")

信用:https://stackoverflow.com/a/38463559

答案 1 :(得分:4)

这可能是你调用read_html(或你的情况下是html)没有正确识别自己尝试从中检索内容的服务器的问题,这是默认行为。使用curl,将用户代理添加到read_html的handle参数中,让您的scraper识别自己。

library(rvest)
library(curl)
read_html(curl('http://google.com', handle = curl::new_handle("useragent" = "Mozilla/5.0")))

答案 2 :(得分:0)

我遇到了这个问题,因为我的VPN已经打开了。在关闭之后,我立即重新尝试,它解决了这个问题。

答案 3 :(得分:0)

我遇到了类似的问题,一个小黑客解决了它。 超链接中有2个字符为我创建了问题。 因此,我将“è”替换为“e”&amp; “é”与“e”并且有效。 但只需确保超链接仍然有效。

答案 4 :(得分:0)

我的笔记本电脑通过wifi连接到路由器时出现错误消息,但是ISP出现了某种故障:

read_html(brand_url)
Error in open.connection(x, "rb") : 
  Timeout was reached: [somewebsite.com.au] Operation timed out after 10024 milliseconds with 0 out of 0 bytes received

在上述情况下,我的wifi仍然连接到调制解调器,但是无法通过rvest(也不在浏览器中)加载页面。这是暂时的,持续了约2分钟。

也许还值得注意的是,当wifi完全关闭时会收到不同的错误消息:

brand_page <- read_html(brand_url)
Error in open.connection(x, "rb") : 
  Could not resolve host: somewebsite.com.au