Комментарии 17
Почему бы вместо cheerio не инжектить на страницу внутри puppeteer jQuery и не тащить сразу финальные данные оттуда?
+1
Мне кажется, чтобы взять достаточно данных там, где этого не хотят и фильтруютд по адресу, 4 порта никак не хватит
0
В чем разница между прямым запросом на страницу, и получение её HTML в response, и открытии этой страницы в браузере, с последующим копированием HTML?
0
Я как бы не спец в этом, но ваша страница может быть динамической и подгружаться на лету. Вы можете её этим способом всю получить. А так, пришлось бы получать её из каких-нибудь веб-сервисов или по частям.
0
Тут дело в том, что при попытке получить HTML-код страницы, которая является SPA (Single Page Application), вы, скорее всего, в получите в ответ страницу, в теле которой будет только что-то вроде такого:
А если брать содержимое страницы из браузера – то получим уже нормальный HTML.
В статье, кстати, про это говорится
<script src="app.js"></script>
А если брать содержимое страницы из браузера – то получим уже нормальный HTML.
В статье, кстати, про это говорится
+1
Здравствуйте!
Спасибо за статью. Я по скрапингу не очень, поэтому появился вопрос. Если описываемым способом заходить на такой сайт на JS: 1xstavka.ru/en/live/Basketball, произойдет рендеринг html, чтобы, например, сохранить его как файл на диске?
Спасибо за статью. Я по скрапингу не очень, поэтому появился вопрос. Если описываемым способом заходить на такой сайт на JS: 1xstavka.ru/en/live/Basketball, произойдет рендеринг html, чтобы, например, сохранить его как файл на диске?
0
Сталкивался с похожей проблемой, но Tor оказался слишком медленным — нужно было скрейпить миллионы запросов.
Возможная альтернатива Тору — покупка VPN (есть позволяющие до 8 одновременных коннектов) и запуск массива Docker контейнеров, подключающихся по OpenVPN и заворачивающих трафик в SOCKS.
Также, в большинстве случаев headless browser может быть избыточен, сессии в библиотеке requests на питоне (уверен, есть похожая библиотека для JS) + подмена User-Agent и Referrer почти всегда решают задачу. Конечно, часто на настройку этого требуется больше времени, однако и производительность существенно выше.
Возможная альтернатива Тору — покупка VPN (есть позволяющие до 8 одновременных коннектов) и запуск массива Docker контейнеров, подключающихся по OpenVPN и заворачивающих трафик в SOCKS.
Также, в большинстве случаев headless browser может быть избыточен, сессии в библиотеке requests на питоне (уверен, есть похожая библиотека для JS) + подмена User-Agent и Referrer почти всегда решают задачу. Конечно, часто на настройку этого требуется больше времени, однако и производительность существенно выше.
+1
Tor не только очень медленный, но ещё и IP адреса выходных нодов часто бывают забанены на сайте или закрыты какой-нибудь гугл капчой.
+1
А у вас не возникало ситуации, когда надо получить выборку релевантную местоположению? Если не использовать headless browser, есть какой-то способ тот же гугл убедить, что ты находишься в конкретном городе?
0
Хмм, раз у сайта есть API, то почему бы его не юзать напрямую, минуя при этом headless браузер?
+1
Все зависит от задачи. Если мы должны парсить конкретный сайт, вы правы.
Но есть случаи когда нужно парсить любой веб-сайт и извлекать от туда к примеру контактный данные, в этом случаи без хедлес браузера не обойтись.
0
Бывает ключик генерится на клиенте обфусцированным алгоритмом слегка
0
Никто и не использует headless браузер просто потому, что сайт это SPA и у него есть API. headless для тех случаев, когда собрать аналогичный запрос руками почти нереально (хеши/подписи в параметрах запросов итд), или когда на сайте присутствуют защиты от парсинга, основанные на выполнении js.
0
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Node.js, Tor, Puppeteer и Cheerio: анонимный веб-скрапинг