楼主: zzbb2266
3606 3

[问答] 提问,如何让一段代码执行几秒后强制停止? [推广有奖]

  • 0关注
  • 0粉丝

大专生

41%

还不是VIP/贵宾

-

威望
0
论坛币
13 个
通用积分
1.0179
学术水平
2 点
热心指数
2 点
信用等级
0 点
经验
227 点
帖子
25
精华
0
在线时间
67 小时
注册时间
2018-9-11
最后登录
2020-4-17

楼主
zzbb2266 发表于 2019-10-11 10:21:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
现在在做基于Rselenium的爬虫练习,试图批量抓取若干网页上的信息,现在发现打开网页这个过程是流程中最耗时的部分:
  1. remDr$open()
  2. remDr$navigate(url)
复制代码
但另一方面网页主体部分加载还是很快的,慢就慢在后面加载广告、相关网页链接之类的步骤。所以现在有个想法,能不能将这段代码设为运行几秒后强制停止?这样的话估计能节省至少90%的时间,不知是否可行?谢谢大家
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:navigate Gate Open Elen 是否可行

沙发
jinkelazzz 发表于 2019-10-11 10:53:13
这两个函数是你自己写的吗?

藤椅
zzbb2266 发表于 2019-10-11 13:31:52
jinkelazzz 发表于 2019-10-11 10:53
这两个函数是你自己写的吗?
Rselenium函数

板凳
zzbb2266 发表于 2019-10-12 16:52:41
好吧,在stackoverflow上发帖解决了... 使用 R.utils包和try函数联用即可,error不妨碍后续代码继续运行:

  1. library(RSelenium)  
  2. library(rvest)
  3. library(R.utils)

  4. remDr <- remoteDriver(remoteServerAddr = "127.1.1.1"
  5.                       , port = 4444
  6.                       , browserName = "firefox") # connect to Server
  7. remDr$open()
  8. try(withTimeout(remDr$navigate("https://aaaa.org"), timeout=0.5)) # stop navigation after 0.5 sec
  9. a1 <- read_html(remDr$getPageSource()[[1]][1])
  10. a2 <- html_nodes(a1, "pre") %>% html_text()
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 16:31