Соскоб в сети с использованием URL-списка в R - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь очистить некоторые URL-адреса с нескольких сайтов, которые я собрал.Я сохранил уже собранные веб-сайты в информационном фрейме под названием meetings2017_2018.Проблема в том, что URL-адреса не очень похожи друг на друга, за исключением первой части URL-адресов: https://amsterdam.raadsinformatie.nl.Вторая часть URL-адресов сохраняется в кадре данных.Вот несколько примеров:

/vergadering/458873/raadscommissie%20Algemene%20Zaken /vergadering/458888/raadscommissie%20Wonen /vergadering/458866/raadscommissie%20Jeugd%20en%20Cultuur /vergadering/346691/raadscommissie%20Algemene%20Zaken

Таким образом, весь URL-адрес будет https://amsterdam.raadsinformatie.nl/vergadering/458873/raadscommissie%20Algemene%20Zaken

Мне удалось создать очень простую функцию, из которой я могу извлечьURL-адреса с одного веб-сайта (см. Ниже).

web_scrape <- function(meeting) {
      url <-  glue("https://amsterdam.raadsinformatie.nl{meeting}")
      read_html(url) %>%
      html_nodes("a") %>%
      html_attr("href")
      }

С помощью этой функции мне по-прежнему необходимо вставлять каждый URL-адрес из кадра данных, который я хочу очистить.Поскольку в кадре данных более 140, это может занять некоторое время.Как вы можете догадаться, я хочу очистить все URL-адреса одновременно, используя список URL-адресов в кадре данных.Кто-нибудь знает, как я могу это сделать?

1 Ответ

0 голосов
/ 18 марта 2019

Вы можете отобразить / перебрать сохраненный URL-адрес во фрейме данных meetings2017_2018:

Предполагая, что ваши URL-адреса сохранены в столбце url в вашем фрейме данных meetings2017_2018, отправной точкой будет:

# create a vector of the URLs
urls <- pull(meetings2017_2018, url)

# map over the URLs and execute whatever code you want for every URL
map(urls, function(url) {
    your_code
})
...