Очистить динамические c данные рендеринга нажатием кнопки - PullRequest
0 голосов
/ 07 мая 2020

У меня много разных парсеров, но все они работают со страницами рендеринга сервера или анализируют ответы от конечных точек API.

Но теперь у меня есть два очень специфичных c веб-сайта, которые нужно очистить:

Первый.

Одна страница, мы должны нажать кнопку поиска, чтобы получить первые 10 элементов. Чтобы получить следующие 10 предметов - нажмите кнопку «Далее». Через 2-3 секунды c данные в разделе поиска перерисовываются. При нажатии кнопки «Далее» я получаю фиктивные неанализируемые данные от службы vaadin. Таким образом, данные могут быть проанализированы только с отображаемой страницы HTML.

Второй.

Та же самая страница с теми же принципами (нажмите кнопку поиска, чтобы получить данные инициализации, нажмите Далее кнопку для загрузки новых данных). Но, кроме того, мне нужно нажимать на каждый элемент, чтобы получить все данные для очистки (я очищаю некоторые данные из отображаемого результата поиска + из модального окна после щелчка по каждому элементу результата поиска)

Вопрос - можно ли очистить такие веб-сайты с scrapy и spla sh? Я знаю о селене, но он довольно тяжелый и медленный, мне нужно другое решение. Ни разу не работал со spla sh, но если не ошибаюсь, можно имитировать клик через lua скрипт ..

1 Ответ

1 голос
/ 07 мая 2020

Я бы посоветовал избегать Spla sh и вместо этого воспроизводить базовые запросы .

Основная проблема, которую я вижу здесь при переходе по маршруту Spla sh, заключается в том, что если есть нет URL-адреса, который вы можете использовать для доступа к странице, отличной от первой, из веб-браузера, и поскольку Spla sh не поддерживает (AFAIK) возобновление предыдущего рендеринга, вам потребуется Spla sh для каждого запроса к Spla sh запускает сценарий Lua, который нажимает «Далее», ожидает и повторяется для N страниц.

Если воспроизведение запросов по какой-то причине не отображается, может быть лучше использовать интерактивный браузер без головы (Selenium, Puppeteer) вместо службы рендеринга (Spla sh).

...