Wpis z mikrobloga

#programujzwykopem #r #scraping

Bry wieczór.
Scrapera w R sobie piszę, i mam problem z pętlą for, która przekaże wartość do linku.
Za pierwszym razem powinno pójść 1, a później wielokrotność counter (251, 501, 751, itd).

Chcę ściągnąć dane ze strony IMDB.
Link wyglada tak:
https://www.imdb.com/search/title/?title_type=feature&release_date=,2018-12-31&count=250&start=1
count - ile filmów pojawi się na stronie (wartości to 50, 100, 250)
start - od którego numeru ma się wyświetlić

Czyli podstawowy link podany wyżej wyświetla listę od 1. do 250.

Jak napisać pętlę, która będzie aktualizowała wartość start o 250 (251, 501, 751, itd)

Napisałem coś takiego:

#instalacja i ladowanie rverst
install.packages("rvest")
install.packages("RSelenium")
library(rvest)
library(RSelenium)

#otwarcie przegladarki (w moim przypadku Firefox)
rD <- rsDriver(browser=c("firefox"))
remDr <- rD[["client"]]

counter=250
for (j in 1){
j<-j+counter
#otworzenie strony w przegladarce
newURL<-"https://www.imdb.com/search/title/?title_type=feature&release_date=,2018-12-31&count=250&start="
startNumberURL<-paste0(newURL,j)

remDr$navigate(startNumberURL)

#odczytanie kodu strony
stronaint<-readhtml(startNumberURL)

#odczytanie sekcji z rankingiem
rankdata<-htmlnodes(stronaint,'.text-primary')
#konwersja rankingu na text
rank
data<-htmltext(rankdata)
#konwersja na numeric
rankdata<-as.numeric(rankdata)
}

#zamkniecie przegladarki
remDr$close()
#zatrzymanie serwera
rD[["server"]]$stop()

Nie mam pojęcia jak to napisać. Będę bardzo wdzięczny za pomoc.
  • 1
@ssupkowski: Jeżeli jakieś dane są renderowane po wczytaniu contentu np przez javascript to musisz mieć heartless browser i tak to odczytywać bo często dostajesz kod strony który nie jest po wykonaniu js