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