如果运行时间太长,只需忽略循环中的命令

问题描述

我尝试使用 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...