0
我是新來的網絡抓取,我試圖從IMDb垃圾電影預算數據。這裏是我的代碼:RSelenium網站抓取總是返回空
budget=vector()
for(i in 1:50){
remDr$navigate('http://www.imdb.com/search/title?sort=moviemeter,asc&start=1&title_type=feature&year=2011,2011')
webElems=remDr$findElements('css selector','.wlb_lite+ a')
webElems[[i]]$clickElement()
b=remDr$findElements('css selector','.txt-block:nth-child(11)')
b_text=unlist(lapply(b, function(x){x$getElementText()}))
if(is.null(b_text)==T){
budget=c(budget,'NULL')
}
if(is.null(b_text)==F){budget=c(budget,'NULL')}
print(b_text)
}
在每個頁面上有50部電影。我想逐一點擊每個鏈接並收集相應的預算數據。如果我不在循環中運行代碼,代碼運行良好。但是當我在循環中運行它時,代碼總是返回'Null'。我擔心這是因爲頁面沒有在循環中完全加載。我嘗試使用'setTimeout'和'setImplicitWaitTimeout'命令,但它們不能很好地工作。有人可以幫我嗎?
謝謝!我試過Sys.sleep,它確實有效!問題是R有沒有辦法檢測網頁是否被加載? – Allen
我猜這在RSelelnium中很直觀。導航到頁面後,只有在加載網頁後才執行下一個代碼行。但是Sys.sleep會給你額外的時間。我猜!!我不確定 – Bharath