Очистить несколько страниц с помощью rvest из IMDB - PullRequest
0 голосов
/ 11 декабря 2018

Итак, я пытаюсь очистить данные из ссылки IMDB: https://www.imdb.com/search/title?release_date=2010-01-01,2017-12-31&count=100&start=101&ref_=adv_prv

И я хочу очистить данные времени выполнения и заголовка с помощью приведенного ниже кода.Однако мне интересно, как я могу выполнить то же самое для нескольких других страниц?Я пытался сделать цикл for, но я не знаю, как включить его в мой код.Шаблон выглядит следующим образом:

https://www.imdb.com/search/title?release_date=2010-01-01,2017-12-31&count=100&start=101&ref_=adv_prv
https://www.imdb.com/search/title?release_date=2010-01-01,2017-12-31&count=100&start=201&ref_=adv_nxt
https://www.imdb.com/search/title?release_date=2010-01-01,2017-12-31&count=100&start=301&ref_=adv_nxt

Мой код:

url <- 'https://www.imdb.com/search/title?release_date=2010-01-01,2017-12-31&count=100&start=101&ref_=adv_prv'
    webpage <- read_html(url)

titlehtml <- html_nodes(webpage,'.lister-item-header a')
title <- html_text(titlehtml)


runtimehtml <- html_nodes(webpage,'.text-muted .runtime')
runtime <- html_text(runtimehtml)
runtime<-gsub(" min","",runtime)# removing mins and converting it to numerical
runtime<-as.numeric(runtime)

1 Ответ

0 голосов
/ 11 декабря 2018

Попробуйте это:

urls <- c("https://www.imdb.com/search/title?release_date=2010-01-01,2017-12-31&count=100&start=101&ref_=adv_prv",
      "https://www.imdb.com/search/title?release_date=2010-01-01,2017-12-31&count=100&start=201&ref_=adv_nxt",
      "https://www.imdb.com/search/title?release_date=2010-01-01,2017-12-31&count=100&start=301&ref_=adv_nxt")`

results_list <- list()

for(.page in seq_along(urls)){
  webpage <- read_html(urls[[.page]])
  titlehtml <- html_nodes(webpage,'.lister-item-header a')
  title <- html_text(titlehtml)
  runtimehtml <- html_nodes(webpage,'.text-muted .runtime')
  runtime <- html_text(runtimehtml)
  runtime <- gsub(" min","",runtime)
  results_list[[.page]] <- data.frame(title = title,
                                  runtime = as.numeric(runtime)
                                  )
}

final_results <- plyr::ldply(results_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...