>что многие боты запрашивают заранее предопределённый набор страниц и не передают Cookie, выставленные в ответ на прошлые запросы.Передавать куки с помощью requests или httpx тривиально. Скрейпинг требует достаточной имитации браузера, включая полную поддержку экзотических схем сжатия и заголовков. Эта имитация всего лишь для душевного спокойствия тех дураков (часто не знаешь, из их числа админ, или нет, но иногда дураки себя маркируют, прямо в каждую страницу в футер вставляя угрозы судом тем, кто скачает данные), которые "ой, у меня в метриках аномалия, пойду всё анально огорожу" не понимающих, что их сайты всё равно отскрейпят, только оверхед будет больше. Статические ресурсы я обычно не качаю; качать их не приносит пользы ни мне, ни владельцам сайта.
В крайних случаях – Cloudflare или ситуации, когда прямо совсем нежелательно быть обнаруженным (например, при создании датасета для CAPTCHA не хотелось бы, чтобы вебмастер просто взял и сменил алгоритм) – можно использовать полноценный хром с расширением, которое выполняет весь скрейпинг и сбрасывает результаты на локальный веб-сервер, работающий на fastapi. Но плясать под клаудфларь дорого, унизительно и недостойно, я предпочитаю этого избегать. Идеальное решение по-прежнему: ссылки на дампы данных в футере сайта.
Естественно, запросы - будь то Python-код или расширение для браузера - идут с значительными переменными задержками, превышающими оные в robots, маскируясь под обычный трафик. Торопиться некуда: большинство данных, которые скрейпящие в состоянии с пользой обработать, обновляются нечасто, при этом старые данные остаются актуальными. Владельцы сайтов, пожалуйста, делайте страницу, выгружающую всё, что можно выгружать, в дамп, и желательно с дельтами, как, например, это делают флибустьеры. Это было бы взаимовыгодно и вам, и скрейперам. Вы можете пытаться ссать против ветра, но это совершенно бесполезно и не приносит пользы никому. Те кто скрейпят - им же для дела надо, это не котики, без которых можно обойтись.