1

我是网络抓取的新手,我正在尝试从 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”命令,但效果不佳。有人可以帮帮我吗?

4

1 回答 1

2

尝试

Sys.sleep(time in seconds)

对于每个循环而不是 setTimeout。

这已经解决了像你这样的问题。

于 2016-01-11T15:54:06.207 回答