Привет, /pr/ач. Я тут пишу парсер Авито для личных целей на jsoup(java) и столкнулся с проблемой защиты от парсинга. Распарсить мне нужно немного, всего страниц 50 в день. Написал код, распарсил одну, потом запустил парситься все остальные и после 10 успешных перестало работать. Если пытаюсь загрузить любую страницу программой, то title страницы показывается как "Доступ временно заблокирован".
Спустя несколько часов этот блок спал и я задумался как работает эта защита и можно ли ее обойти? Пока приходят на ум использование хороших приватных https прокси. Если бы я знал как работает защита то может мог бы придумат что-то еще. Например, есть идея делать запросы с небольшим рандомизированым интервалом времени, но чет мне кажется что там программисты не дураки и предусмотрели это. Повторяю, мне не нужно парсить очень много страниц.
50 страниц это херня вообще, проблем не должно быть, если ты не молотишь в сервер с частотой дятла Максимум хорошо притвориться честным юзером, от правильных user agent до использования headless браузера с работающим javascript и куками
>>1705116 То есть мне скоипровать и вставить всю эту строчку в программу? Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36
>>1705151 Ты пока сам признался, что никакой имитации вообще не делал. Даже банального user-agent.
Посмотри, как выглядит запрос в браузере, F12. Можно через curl воспроизвести запрос. Помимо user-agent есть и другие заголовки, их тоже очень желательно воспроизводить, чтобы ты не выглядел как робот.
В теории можно делать очень продвинутые и изощрённые защиты, которые будут анализировать поведение пользователя, специфичную активность браузера (подтягивание графики, работу скриптов и т.п.), но я сомневаюсь, что там это есть.
>>1706919 Есть headless браузеры, которые от браузера отличаются только отсутствием гуя. Очень удобно, потому что он и запрос запросит, и картинки скачает. Хотя какой-нибудь гугл транслейт запрашивает у меня капчу даже при абсолютно легитимных запросах, потому что айпи билайновский
>>1707024 Хедлессы тоже палятся несложно отсутствием\присутствием того, чего нет в реальном браузере. Можно скриптовать реальный браузер, но что-то ещё подпиливать придется, да.
>>1707094 Посмотрел, сейчас там авито какую-то диагностику ведёт, посылает пакеты с данными по fps, явно для анализа, что на клиенте именно реальный браузер.
>>1707216 Ты бы хоть загуглил, перед тем как в штаны себе срать. Помимо этого, headless браузер будет срать в память не меньше хрома и для смены в нём прокси тебе нужно будет перезапускать процесс headless браузера, убив перед этим старый (что не всегда работает, засерая память еще больше). Ну и общая скорость загрузки страницы тоже страдать будет, так как он будет выполнять все скрипты на страницы и подгружать всё что подгружается скриптами.
>>1707258 Куда ты лезешь, недоумок? Тебе же объяснили, что headless бразуер, отличается отсутствием GUI. То, что ты не умеешь программировать - это твои проблемы.
Так если страниц не много, то зачем с хедлесом страдать? или все на сервере происходит? просто селениум + профиль от своего браузера подключить. Один раз обучить его и все. Если он 10-20 минут проработает и спокойно все спарсит, то ничего страшного не случится. яндекс-маркет пакетно так паршу с картинками и всем остальным - все спокойно, а там программисты тоже не лохи
Распарсить мне нужно немного, всего страниц 50 в день. Написал код, распарсил одну, потом запустил парситься все остальные и после 10 успешных перестало работать.
Если пытаюсь загрузить любую страницу программой, то title страницы показывается как "Доступ временно заблокирован".
Спустя несколько часов этот блок спал и я задумался как работает эта защита и можно ли ее обойти?
Пока приходят на ум использование хороших приватных https прокси. Если бы я знал как работает защита то может мог бы придумат что-то еще. Например, есть идея делать запросы с небольшим рандомизированым интервалом времени, но чет мне кажется что там программисты не дураки и предусмотрели это.
Повторяю, мне не нужно парсить очень много страниц.