如何解决如果运行时间太长,只需忽略循环中的命令
我尝试使用 R-Selenium 在网站上抓取大量页面。 代码如下所示:
library(RSelenium)
library(rvest)
rD<-rsDriver(browser = 'firefox',port = 581L)
remDr<-rD$client
vec<-c('/de/shop/head-wc-rebels-irace-ski-set-1819-schwarz-00002001874564-p.html','/de/shop/alpina-jump-20-qvm-skihelm-rosegold-00002001878075-p.html','/de/shop/roxy-backyard-damen-snowboardhose-gelb-00002001878176-p.html','/de/shop/giro-envi-mips-damen-skihelm-lila-00002001883070-p.html')
for (i in vec) {
remDr$navigate(paste0('https://www.ochsnersport.ch',i))
Sys.sleep(10)
Produktinfo_html<-read_html(remDr$getPageSource()[[1]])}
当你运行它时,你会看到,当涉及到第三个网页时,循环不会继续;'https://www.ochsnersport.ch/de/shop/roxy-backyard-damen- snowboardhose-gelb-00002001878176-p.html' -> 有点乱。
这是一个 MRP,我想抓取比它们多得多的网站。因此,像上面这样的乱七八糟的页面可能会更频繁地出现。
因此,当 remDr$getPageSource() 尝试读取提到的网页时,读取 html 需要很长时间,并且会出现错误,最终导致循环中断。所以首先,我已经尝试实现 WithTimeout (R.Utils) 来在它运行几秒钟后停止该命令。但这也给了我一条错误消息并打破了循环。所以我真的不知道,如何继续?
感谢您的帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。