• Как обойти капчу на Python?

    Amigun
    @Amigun Автор вопроса
    Джун : |
    Если у вас возникла такая-же проблема как у меня, а именно капча при парсинге сайта, то прочитайте как я её решил.

    Изначально я использовал библиотеки 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, и можно сказать что я обошел капчу, так как она больше в процессе парсинга у меня не выскакивала.

    Можете попробовать все описанные выше способы, может что и поможет. С каждым сайтом нужно извращаться по своему)
    Ответ написан
    1 комментарий
  • Как включить fake gps, не разрешая в андроиде фиктивное местоположение. Или включить разрешение но так чтобы нельзя было отследить?

    @astronotius
    В качестве рута использовать Magisk.
    Далее установливаем Lucky Patcher
    Ставите Fake GPS PRO или Fake GPS Donate и с помощью Lucky Patcher, переносите этот Fake в системный раздел.
    Далее установлен EdXposed.
    В EdXposed ставим модуль Hide Mock Location. Активируем его.
    потом в Magisk ставите режим Magisk Hide.
    Уваля, определить что работает Mock Location нельзя.
    Проверено на арр по самоизоляции США, Россия, Украина
    Ответ написан
    Комментировать