Comments 23
Как поживает скрейпинг фротенда при вашем подходе, когда всё содержимое страницы загружается AJAX скриптами? Нам приходится целым браузером ходить по страницам
Я то понял. Просто вы описываете простой случай, когда вам сервер отдаёт страницу с данными. А у нас чаще встречаются ситуации, когда сервер отдаёт практически пустой Html с пачкой JS скриптов, которые асинхронно начинают подтягивать данные на страницу и отдельная проблема даже понять, когда эта страница "полностью прогрузилась и готова к использованию". Имитировать логику всех этих JS вручную ооочень трудозатратно.
1. С хорошей, нестандартной captcha
1. С защитой от ботов с помощью сервисов типа perimeterX, Netacea, dataDome и прочих.
3. С защитами на основе user fingerprinting.
И тогда порой уже без полноценного браузера на базе chrome не обойтись. Даже headless режим детектируется при известной сноровке (отрисовка определенных картинок с помощью движка, триггер по использованию мышки, подключенные плагины, быстро закрытая вкладка и прочие варианты).
Как итог, приходишь к созданию эдакого фреймворка типа scrapy, который бы позволял работать с удаленными сайтами с помощью различных вариантов подключения: requests, selenium, headless, chrome.
А уж что говорить когда необходимо обеспечивать поиск по данным в реальном времени, тут и каждая секунда дорога, и проблем бывает выше крыши.
Попробуйте вашим способом получить список документов вот с этой, например, страницы:
https://www.mos.ru/authority/documents/
В ответе видим красивый json, а листаем страницы меняя значение page=
Получение документа по id — www.mos.ru/api/documents/v1/json/detail.php?id=43437220
Работать с подобными сайтами даже проще и приятнее. Не нужно возиться с парсингом html, потому что как правило там json в ответе.
А enpoint'ы находятся через DevTools максимум за минуту.
Если ценность в скорости и экономии ресурсов конечно разберёшь весь фронт по полочкам и ещё и старые едпоинты найдёшь. =)
P.S.
Учитывая что вас спрашивают выше, то совет, по подробнее остановится на хром инструментарии видимо использование вызывает у людей сложности. )
Хотелось бы узнать причину отклонения комментария.
В последнем абзаце автор предлагает написать в комментах сайт для примера — я предлагаю reformagkh.ru.
Web Scraping