Если у вас возникла такая-же проблема как у меня, а именно капча при парсинге сайта, то прочитайте как я её решил.
Изначально я использовал библиотеки requests (для отправки запросов к сайту) и bs4 (для самого парсинга).
Сначала я сделал задержку, если программа встречает капчу, то она останавливает свою работу на 1 час, и дальше продолжает работать. Это не сработало, ни через час, ни через два, ни через 3 дня.
Дальше я думал подключить selenium, и когда выходит капча, открывать эту страничку с помощью selenium, там проходить капчу вручную, закрывать selenium, и пробовать через requests еще раз отправлять запросы на страницу. Капча все равно осталась.
Переписать парсер под selenium - без использования requests и bs4, хорошее решение, но не всегда подходит. В моем случае было слишком муторно использовать это, поэтому я обратился сюда.
Тут мне подсказали такой вариант: использовать сессии (requests.Session()) и очищать куки при смене IP (кстати да, я подключал библиотеки для смены IP через proxy, а так же библиотека для генерации fake-User-Agent) и передавать в заголовки параметр referer. Возможно это и работает, но не для меня. Капча все равно осталась.
Ну и вот собственно само решение :)
Я решил заменить библиотеку requests на selenium. Я через него подключался к сайту (у меня даже открывалось окно браузера) и с помощью метода page_source я получал html-код странички. Кстати, будьте внимательными, я так понял что с помощью этого метода можно получить только html, без js и css. Поэтому если сайт использует js для генерации контента, то у вас вряд-ли это получится. А потом, я просто с помощью bs4 парсил полученную html страничку, и извлекал из нее нужные мне данные. Да, капча все равно появлялась, но она появилась лишь однажды, я её вручную решил прямо через окно selenium, и можно сказать что я обошел капчу, так как она больше в процессе парсинга у меня не выскакивала.
Можете попробовать все описанные выше способы, может что и поможет. С каждым сайтом нужно извращаться по своему)