当我进行一些webscraping(使用for循环删除多个页面)时,有时,在抓取40页中的第35页后,我有以下错误:
“open.connection(x,”rb“)出错:达到超时”
有时我还会收到这条消息:
“另外:警告消息:关闭未使用的连接3”
在我想澄清的事项清单下面:
1)我已经读过它可能需要明确定义用户代理。我试过这个:
read_html(curl('www.link.com', handle = curl::new_handle("useragent" = "Mozilla/5.0")))
但它没有改变任何东西。
2)我注意到当我打开VPN并更改位置时,有时我的抓取工作没有任何错误。我想明白为什么?
3)我也读过它可能取决于代理。怎么想了解如何以及为什么?
4)除了我所遇到的错误之外,我想了解这个警告,是否有可能导致理解错误的线索:
警告消息:关闭未使用的连接3
这是否意味着当我进行webscraping时,我应该以某种方式调用函数来关闭连接?
我已经在stackoverflow上阅读了以下帖子,但没有明确的解决方案:
Iterating rvest scrape function gives: "Error in open.connection(x, "rb") : Timeout was reached"
rvest Error in open.connection(x, "rb") : Timeout was reached
Error in open.connection(x, "rb") : Couldn't connect to server
答案 0 :(得分:1)
您尝试过吗?
https://stackoverflow.com/a/38463559
library(rvest)
url = "http://google.com"
download.file(url, destfile = "scrapedpage.html", quiet=TRUE)
content <- read_html("scrapedpage.html")