【问题标题】:rvest Error in open.connection(x, "rb") : Timeout was reachedopen.connection(x, "rb") 中的 rvest 错误:已达到超时
【发布时间】:2016-01-22 14:20:06
【问题描述】:

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

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

open.connection(x, "rb") 中的错误:
已达到超时另外:
警告消息:“html”已弃用。
请改用“read_html”。
查看帮助(“已弃用”)

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

【问题讨论】:

  • 您是否也尝试过read_html 命令,因为错误消息显示html 已弃用...这可能无法解决您的问题,但也许输出更有帮助...
  • 是的,消息是:Open.connection(x, "rb") 中的错误:已达到超时另外:警告消息:关闭未使用的连接 3 (google.com)
  • 实际上,这段代码在我的家庭网络中运行良好。但是当我尝试在公司网络中使用此代码时,出现错误。
  • 似乎无法重现为代码问题,这将为我返回结果。如果您弄清楚网络发生了什么以及如何解决它,您可以发布该答案。
  • 对我来说同样的问题,显然来自我使用的网络谷歌要求证明不是机器人,当刮板运行时页面当然会超时。

标签: r rvest


【解决方案1】:

我在办公室网络中的代理后面工作时遇到了同样的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

【讨论】:

  • 这也适用于我......在我的情况下,我找到了一个更永久的解决方案来设置代理环境变量。以下是步骤:stackoverflow.com/a/60100844/1839959
  • 谢谢您-这对我有用,使用公司网络。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      我遇到了类似的问题,一个小技巧解决了它。 超链接中有 2 个字符为我制造了问题。 因此,我将“è”替换为“e”,将“é”替换为“e”,并且成功了。 但只需确保超链接仍然有效。

      【讨论】:

        【解决方案5】:

        当我的笔记本电脑通过 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
        

        【讨论】:

          猜你喜欢
          • 2016-12-27
          • 2018-05-27
          • 1970-01-01
          • 1970-01-01
          • 2015-10-28
          • 1970-01-01
          • 2023-01-07
          • 1970-01-01
          • 2020-10-18
          相关资源
          最近更新 更多