[問題] 爬蟲,因為壅塞想讓程式等待(已解決)

作者: 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