Чем веб-парсеры отличаются от реальных пользователей?
Хотел спарсить сайт https://mangalib.me/?section=all-updates.
Раньше получалось, сейчас начала выходить ошибка 503. В коде отличий вроде как нету, user-agent я поставил.
Делал это дело через requests, затем попробовал через scrapy, то же самое, при том другие сайты нормально подгружаются, и тут у меня возник вопрос, а чем именно боты выделяются от обычных пользователей и какие можно предпринять меры, чтобы эту разницу замазать?
1. Количеством запросов
2. Нехаотичностью запросов
3. Отсутствием рантайма для JS
4. Либо присутсвием рантайма, но отсутствием натурального движения мышью
5. Списком IP из ренжа AWS/DO/Vultr и других хостингов. Пользователи не сидят с таких IP адресов или делают это очень редко (купили и настроили там VPN)
6. Резкими всплесками активности из одного сегмента сети (следствие 1 и 5 пунктов)
7. Капча
8. Что угодно ещё, хоть fingerprintjs
Какая конкретно детектилка ботов стоит — сложно сказать. Либо измерять эмпирически, либо подкупить разработчиков оттуда, либо терморектальный криптоанализ. Но в любом случае, это должно стоить дешевле, чем информация, которую ты пытаешься попарсить
При прочих равных пользователи в первую очередь отличаются частотой запросов. Парсер сходит по всем линкам за миллисекунды. Если владелец сайта задался целью усложнить парсеру работу, он сможет это сделать, анализируя частоту и типичность запросов.
Ну и ловушку можно предусмотреть - невидимая в UI ссылка, например (а если парсер умный и определяет видимость элемента, то можно и "светло-серое на белом" сделать). Прошёл по ссылке - значит бот (или влезливый мамкин хацкер).
Если пофантазировать, то можно и нейросетку приделать, которая бы, имея модель действий среднестатистического пользователя, определяла бы, насколько этот клиент не похож на человека.