Я новичок в веб-соскабливании, и я пытаюсь избавиться от данных бюджета фильма от IMDb. Вот мой код:RSelenium web scraping всегда возвращает Null
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