Я нахожу, что задачи веб-очистки в R часто могут быть достигнуты с помощью простого в использовании пакета rvest
, извлекая код html, который создает веб-страницу. Однако этот «обычный» подход (как я могу это назвать), кажется, пропускает некоторые функции, когда веб-сайт использует Javascript для отображения соответствующих данных. В качестве рабочего примера я хотел бы очистить заголовки новостей с сайта this. Двумя основными препятствиями для обычного подхода являются кнопка «загрузить больше» внизу и извлечение заголовков с использованием xpath. В частности:Скремблирование Javascript Сгенерированный контент в R
library(rvest)
library(magrittr)
url = "http://www.nestle.com/media/news-archive#agregator-search-results"
webs = read_html(url)
# Headline of the first news based on its xpath
webs %>% html_nodes(xpath="//*[@id='agregator-search-results']/span[2]/ul/li[1]/a/span[2]/span[1]") %>% html_text
#[1] ""
# Same for the description of the first news
webs %>% html_nodes(xpath="//*[@id='agregator-search-results']/span[2]/ul/li[1]/a/span[2]/span[2]") %>% html_text
#[1] ""
Может быть кто-то может пролить свет на (один из) следующие вопросы:
- ли я пропускаю что-то очевидное здесь? То есть, возможно ли очистить заголовки, используя обычный подход, основанный на
rvest
в этом случае? Что касается моего нынешнего понимания, однако, это не так. - Есть
RSelenium
иphantom JS
единственный способ пойти сюда? Иными словами, можно ли выполнить задачу без использованияRSelenium
иphantomJS
, в частности? Это может включать либо извлечение заголовков, либо загрузку большего количества заголовков (или обоих).
Любой ввод оценивается.
Благодарим за предложенный подход! Мне придется посмотреть на это более подробно. Как вы получили расширенный URL-адрес? – Nico21
Я использовал https://addons.mozilla.org/de/firefox/addon/httpfox/ – lukeA
Можете ли вы потянуть больше новостей таким образом? В частности, если количество доступных элементов неизвестно. – Nico21