[问题] 爬虫,因为壅塞想让程式等待(已解决)

楼主: CruxLaelaps (莱拉普斯)   2021-03-19 18:36:35
[软件熟悉度]:
使用者(已经有用R 做过不少作品)
[问题叙述]:
数据库网站本身加载就不快,有时更会塞车,读取网站的档案或路径时,
回传读取的连结(档案或路径)list,即便网站路径存在还是会读不到。
网站读取如果快的时候可以完成,请见范例程式。
如果慢的时候,就算连结存在,会出现错误,当下我开网页大约需要4分钟。
程式约3秒出现错误讯息。错误讯息为:
Error in open.connection(x, "rb") : cannot open the connection。
因为希望程式能自动每日执行,不会卡在有时因网站loading慢而中止,有什么方式
可以让程式等待网站呢?
[程式范例]:
成功的:
"http://tisvcloud.freeway.gov.tw/history/" %>>% (~ cat('Now the program is at
', ., "\n")) %>>%
read_html("UTF8") %>>% xml_find_all("//*[@id='form1']//table/tbody") %>>%
xml_find_all("//tr/td[1]/a") %>>% xml_text %>>%
when(identical(.Platform$OS.type, "windows") ~ stri_conv(., "UTF-8",
"Big5"), ~ .)
结果:
Now the program is at http://tisvcloud.freeway.gov.tw/history/
[1] "Parent Directory" "vd"
"TDCS_PINGLIN" "TDCS"
[5] "roadlevel" "motc20" "map"
...
[25] "1min_incident_data_1968.xml" "1968_incident.pdf"
作者: andrew43 (讨厌有好心推文后删文者)   2021-03-19 22:51:00
read_html(..., options = "RECOVER") 有用吗?
楼主: CruxLaelaps (莱拉普斯)   2021-03-20 00:18:00
不行,结果一样
作者: showfeb   2021-03-20 00:48:00
用try(...)包住语法, 循环遇错重复执行.
作者: locka (locka)   2021-03-20 01:21:00
把read_html的结果存成一个变量,用if判断有抓到东西才做后续解析
作者: cywhale (cywhale)   2021-03-20 08:35:00
如果是这样的话,用 future(read_html) 再解析value()?
作者: celestialgod (天)   2021-03-20 14:32:00
https://reurl.cc/1g83D8 use rvest + timeouts或是三楼建议那样 可能比较好这段code看起来是我5年前为某老师写的...https://imgur.com/4d7yC60没想到会在R板看到自己写的东西XDDD

Links booklink

Contact Us: admin [ a t ] ucptt.com