Это не совсем по теме, но вдруг кому понадобится. Для проверки утечек(если быть точнее это проверка на бота, но одно другому не мешает 🤣) мне очень нравится пользоваться этим сайтом, там много всего, очень выручал раньше:)
А сам браузер(драйвер) установлен? Посмотрите на модуль, он автоматически ставит и обновляет хром драйвер(вроде есть и мозилла) https://pypi.org/project/webdriver-manager
Как альтернатива, можно поставить вручную(если не ошибаюсь, с недавних пор хром драйвер не нужно ставить вручную, но на всякий случай инструкция https://losst.pro/ustanovka-selenium-v-linux) учтите, что браузер и драйвер должны быть совместимы.
Или взять готовые модули, например undetected-chromedriver или selenium-wire. Там, насколько помню все в пакете.
Думаю, основная проблема статьи в ее непрактичности("лабораторности"). По сути, все инструменты имеют место быть, но на деле столкнулся с тем, что потратил время, а есть решения лучше или искал не там. Заранее извиняюсь, что умничаю и развожу воды, сам не спец, но вдруг что-то из этого поможет и сэкономит время/нервы:))) Делюсь своими "граблями" и почти все, что ниже можно найти в статье how to Bypass Cloudflare от zenrows или конкурентов(там одно и то же+-). К сути: 1) requests - основа, поиграть с ней стоит но читал, что он не thread safe(для многопоточной работы), про асинхронность не скажу, кажется, все норм. И не помню, но что-то не так у него было с http/2. Но главное - те же httpx, aiohttp в разы быстрее(вроде на страничке github aiohttp есть замеры), на выходе - потерял время ковыряя не тот модуль, надо было или с 1го из этих 2х модулей сразу стартовать или учить scrapy. 2) Асинхронность(asyncio) - В статье ни слова(scrapy не в счет:)))), хоть в таких задачах она сама напрашивается. Да и в любом случае знать это стоит. 3) Кэш, кажется ботов индексации - почему-то очень редко в статьях про парсинг/скрепинг не пишут - webcache.googleusercontent(если он есть, то можно дернуть данные крайне быстро и легко). если вам повезет, выиграете тонну времени, но данные могут быть несвежими. 4) Api - пока знакомился со скрейпингом, часто видел фразу как в статье мол смотрите апи. Для полного новичка это было как "потрать месяц в поиске не там:)))". Про бесплатный открытый апи с документацией думаю можно только мечтать, обычно начинают с devtools(f12-сеть-fetch/xhr и ловить json с данными, а дальше тестить запросы на эти адреса. кстати, нажав по запросу правой кнопкой можно скопировать, например как fetch, так его проще читать), но думаю стоит упомянуть тот же wireshark(к сожалению, еще не дорос, только собираюсь знакомиться:)))). К слову, в статье большой кусок посвящен отлову в разметке, но сейчас куча сайтов на SSR фреймворках типа next/nuxt, которые кидают сразу статику и у них частенько все интересное скриптом валится в window.__NEXT_DATA__ и тп, другими словами, нужно просто поковыряться в скриптах исходного кода страницы и поискать те же id(уникальные элементы или большие блоки) на странице или в общем поиске девтулзов и вместо плясок вокруг тегов можно дернуть один скрипт и распарсить строку в json. 5) Обнаружение - в статье от zenrows есть список, что нужно и как найти свои следы, я бы только добавил сайт детектор https://abrahamjuliot.github.io/creepjs/, там куча всего, но иногда такие сайты прямо выручают, особенно при играх с прокси. 6) 2 маленьких момента про селениум(вроде в пюппитере тоже есть) - можно в опциях указать правила загрузки страницы(pageLoadStrategy), то есть когда браузер считает страницу загруженной, это может экономить время или давать возможность подхватывать данные до редиректа из скрипта(только аккуратно, поиски элементов скорее отвалятся) и второе - есть возможность подключить девтулзы(тащить оттуда json если апи никак не пускает и застряли, лично меня это пару раз спасало) ПС: у beautifulsoup есть оф документация на русском https://www.crummy.com/software/BeautifulSoup/bs4/doc.ru/bs4ru.html
Если интересна эта тема, то обратите внимание на статьи от Zenrows(и конкурентов) там много полезного, а для самопроверки на детект и утечки можно пробежаться по https://github.com/TheGP/untidetect-tools?tab=readme-ov-file
Это не совсем по теме, но вдруг кому понадобится. Для проверки утечек(если быть точнее это проверка на бота, но одно другому не мешает 🤣) мне очень нравится пользоваться этим сайтом, там много всего, очень выручал раньше:)
Пс: статья вышла занимательная, спасибо
Как в старой поговорке - "все дороги ведут в Рим" (кхм, stackoverflow :)).
А сам браузер(драйвер) установлен? Посмотрите на модуль, он автоматически ставит и обновляет хром драйвер(вроде есть и мозилла) https://pypi.org/project/webdriver-manager
Как альтернатива, можно поставить вручную(если не ошибаюсь, с недавних пор хром драйвер не нужно ставить вручную, но на всякий случай инструкция https://losst.pro/ustanovka-selenium-v-linux) учтите, что браузер и драйвер должны быть совместимы.
Или взять готовые модули, например undetected-chromedriver или selenium-wire. Там, насколько помню все в пакете.
Думаю, основная проблема статьи в ее непрактичности("лабораторности"). По сути, все инструменты имеют место быть, но на деле столкнулся с тем, что потратил время, а есть решения лучше или искал не там. Заранее извиняюсь, что умничаю и развожу воды, сам не спец, но вдруг что-то из этого поможет и сэкономит время/нервы:))) Делюсь своими "граблями" и почти все, что ниже можно найти в статье how to Bypass Cloudflare от zenrows или конкурентов(там одно и то же+-).
К сути:
1) requests - основа, поиграть с ней стоит но читал, что он не thread safe(для многопоточной работы), про асинхронность не скажу, кажется, все норм. И не помню, но что-то не так у него было с http/2. Но главное - те же httpx, aiohttp в разы быстрее(вроде на страничке github aiohttp есть замеры), на выходе - потерял время ковыряя не тот модуль, надо было или с 1го из этих 2х модулей сразу стартовать или учить scrapy.
2) Асинхронность(asyncio) - В статье ни слова(scrapy не в счет:)))), хоть в таких задачах она сама напрашивается. Да и в любом случае знать это стоит.
3) Кэш, кажется ботов индексации - почему-то очень редко в статьях про парсинг/скрепинг не пишут - webcache.googleusercontent(если он есть, то можно дернуть данные крайне быстро и легко). если вам повезет, выиграете тонну времени, но данные могут быть несвежими.
4) Api - пока знакомился со скрейпингом, часто видел фразу как в статье мол смотрите апи. Для полного новичка это было как "потрать месяц в поиске не там:)))". Про бесплатный открытый апи с документацией думаю можно только мечтать, обычно начинают с devtools(f12-сеть-fetch/xhr и ловить json с данными, а дальше тестить запросы на эти адреса. кстати, нажав по запросу правой кнопкой можно скопировать, например как fetch, так его проще читать), но думаю стоит упомянуть тот же wireshark(к сожалению, еще не дорос, только собираюсь знакомиться:)))). К слову, в статье большой кусок посвящен отлову в разметке, но сейчас куча сайтов на SSR фреймворках типа next/nuxt, которые кидают сразу статику и у них частенько все интересное скриптом валится в window.__NEXT_DATA__ и тп, другими словами, нужно просто поковыряться в скриптах исходного кода страницы и поискать те же id(уникальные элементы или большие блоки) на странице или в общем поиске девтулзов и вместо плясок вокруг тегов можно дернуть один скрипт и распарсить строку в json.
5) Обнаружение - в статье от zenrows есть список, что нужно и как найти свои следы, я бы только добавил сайт детектор https://abrahamjuliot.github.io/creepjs/, там куча всего, но иногда такие сайты прямо выручают, особенно при играх с прокси.
6) 2 маленьких момента про селениум(вроде в пюппитере тоже есть) - можно в опциях указать правила загрузки страницы(pageLoadStrategy), то есть когда браузер считает страницу загруженной, это может экономить время или давать возможность подхватывать данные до редиректа из скрипта(только аккуратно, поиски элементов скорее отвалятся) и второе - есть возможность подключить девтулзы(тащить оттуда json если апи никак не пускает и застряли, лично меня это пару раз спасало)
ПС: у beautifulsoup есть оф документация на русском https://www.crummy.com/software/BeautifulSoup/bs4/doc.ru/bs4ru.html