Как я могу собрать данные с нескольких страниц результатов поиска? - PullRequest
0 голосов
/ 07 октября 2018

У меня есть сомнения по поводу очистки веб-страниц с использованием Xpath и функции листов Google IMPORTXML (URL; Xpath) по URL-адресу с несколькими страницами результатов поиска. Страница, с которой я хочу извлечь данные (в частности, ссылки на каждый из них).результат):

http://tools.morningstar.es/es/fundscreener/results.aspx?LanguageId=es-ES&Universe=FOESP%24%24ALL&Rating=0%7C0%7C1%7C1%7C1&CategoryReturn=0%7C0%7C0%7C0%7C0%7C1%7C0%7C0&AnalystRating=0%7C0%7C1%7C1%7C1%7C0%7C0&CurrencyId=EUR&URLKey=2nhcdckzon

Чтобы пояснить свое объяснение, я прилагаю несколько изображений по ссылкам:

Элементы веб-страницы для получения (список ссылок)

Количество отображаемых результатов в нижней части веб-страницы

Для получения ссылок я попытался использовать следующий Xpath:

//td[@class='msDataText gridFundName Shrink']/a/@href

В нижней части страницы вы можете выбрать количество отображаемых результатов, но при выборе другого количества отображаемых результатов или при увеличении номера страницы URL-адрес не изменится.

Поскольку URL-адрес не отображаетсяt изменяется независимо от количества отображаемых результатов и номера страницы. Я получаю только первые 20 результатов с помощью IMPORTXML ().Вот мои сомнения:

  1. Есть ли способ извлечь больше, чем просто 20 ссылок?
  2. Если это невозможно сделать с помощью листов Google, кто-нибудь может предложить альтернативу??
  3. В конце концов, из этих ссылок (потенциально 2000-3000) я хочу извлечь примерно 30 данных из каждой, я уже определил их Xpath.Не могли бы вы предложить какой-либо бесплатный инструмент для очистки веб-страниц для обработки такого объема данных.Я немного растерялся из-за огромного количества альтернатив: осьминог, кимонолабс ...

Я был бы очень признателен за любую помощь, которую вы могли бы оказать.Спасибо

1 Ответ

0 голосов
/ 08 октября 2018

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

Общей рекомендацией здесь является автоматизация браузера, в частности Selenium, поскольку она позволяет вам удалять данные, не требуя, чтобы вы имитировали требуемые вызовы AJAX для загрузки нового контента.Selenium можно запрограммировать так, чтобы он нажимал на следующую кнопку так часто, как это необходимо для извлечения всех страниц, доступных на сайте, и получения данных.Очевидно, это требует некоторого программирования.Я не знаю, что ты предпочитаешь;многие используют Python, как показано в этом вопросе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...