我是网络抓取新手,我正试图从IMDb中废弃电影预算数据。这是我的代码:
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'命令,但它们不能很好地工作。有人可以帮帮我吗?
答案 0 :(得分:2)
尝试
Sys.sleep(time in seconds)
表示每个循环而不是setTimeout。
这解决了像你这样的问题。