作者augustana (微小的希望)
看板R_Language
标题[问题] 用if想让R暂停, 但R没有暂停
时间Thu May 3 18:58:09 2018
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
我在爬一个网页, 但如果我爬得太快它会抓不到
因为有试过让他常态性的休息, 但休息时间太短也不行
所以我设了一个if条件, 抓不到的时候就休息60秒
但他没有执行 不知道是不是哪里出了问题
[程式范例]:
if(a==-1) { Sys.sleep(60)
subdoc <- GET(suburl, config = set_cookies('JSESSIONID' =
'8F0C390B5E686300BC04AA763900EB6D'))
json <- xml_text(xml_find_all(content(subdoc), '/html/body'))
}
[环境叙述]:
R version 3.4.0 (2017-04-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
Matrix products: default
locale:
[1] LC_COLLATE=Chinese (Simplified)_People's Republic of China.936
[2] LC_CTYPE=Chinese (Simplified)_People's Republic of China.936
[3] LC_MONETARY=Chinese (Simplified)_People's Republic of China.936
[4] LC_NUMERIC=C
[5] LC_TIME=Chinese (Simplified)_People's Republic of China.936
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] jsonlite_1.5 httr_1.3.1 xml2_1.0.0
loaded via a namespace (and not attached):
[1] compiler_3.4.0 R6_2.2.0 tools_3.4.0 curl_2.3 Rcpp_0.12.13
[关键字]:
Sys.sleep, if
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.163.97.165
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1525345091.A.DED.html
1F:推 celestialgod: 你的a怎麽来的没写 05/04 05:36
2F:→ augustana: a <- regexpr('rateList',json) 我如果有抓成功, json 05/04 16:43
3F:→ augustana: 会有'ratelist'字串, 没有成功就会找不到, a在环境里面 05/04 16:47
4F:→ augustana: 是atomic[1:1]-1 我把条件改成a[1]=-1试试 05/04 16:48
5F:→ augustana: 我改a[1]==-1也没用说, 他没休息QQ 05/04 16:58
6F:推 kokolotl: 不知道你的a长怎样,你先把a或是a[1]印出来看看要==啥吧 05/04 17:49
7F:→ cywhale: 也要看json是什麽 字串?或是char vectors? 才知道怎麽比 05/04 23:21
8F:→ augustana: > class(json) [1] "character" 05/07 13:58
9F:→ augustana: > a[1] [1] -1 05/07 13:59
10F:→ andrew43: 目前还是看不出来哪里有问题... 你如何确认有无暂停呢? 05/07 15:43
11F:→ andrew43: 另可在sleep之前加上一句cat("a=", a, "\n")帮忙判断 05/07 15:47
12F:→ augustana: 因为如果有暂停的话他会停一分钟继续跑, 不过现在的状 05/07 15:52
13F:→ augustana: 况是他会马上跑出error, 是因为json = ''产生的error 05/07 15:52
14F:→ augustana: cat("a=", a, "\n")这句是什麽意思呀 05/07 15:53
16F:推 kokolotl: > regexpr("aaa","")[1]==-1 [1] TRUE 05/07 16:00
17F:→ kokolotl: 你的程式没跑到那个if就挂了吧XD? 05/07 16:00
18F:→ augustana: 什麽意思 有跑到那里啦XD 05/07 16:05
19F:→ augustana: 那个是在更後面的动作 05/07 16:05
20F:推 kokolotl: cat那段可以让你知道有没有进到if 有进去没停就神奇了 05/07 16:16
21F:→ augustana: 好我来试试看~~再来update~~感温~~ 05/07 16:39
22F:→ kokolotl: 避开回圈手动跑一次查错在哪边,应该比较快XD 05/07 16:45
23F:→ augustana: 我刚刚放了cat 现在有一个感觉 就是 他其实成功很多次 05/07 16:57
24F:→ augustana: 因为我已经看到五个a=-1惹, 还没停, 所以出error应该是 05/07 16:57
25F:→ augustana: 60秒不够的关系XD BTW我有避开回圈测试 但都会成功XD 05/07 16:58