Jak ominąć Google CAPTCHA za pomocą Selenium i Pythona?
Jak ominąć Google CAPTCHA używając Selenium i Pythona?
Kiedy próbuję coś zeskrobać, Google daje mi CAPTCHA. Czy mogę ominąć Google CAPTCHA za pomocą Selenium Python?
Jako przykład, to Google reCAPTCHA . Możesz zobaczyć ten CAPTCHA pod tym linkiem: https://www.google.com/recaptcha/api2/demo
2 answers
Aby rozpocząć korzystanie z klientów Selenium S Python , Należy unikać rozwiązywania/pomijania Google CAPTCHA .
Selen
Selenium automatyzuje przeglądarki. Teraz to, co chcesz osiągnąć dzięki tej mocy, zależy wyłącznie od osób fizycznych, ale przede wszystkim jest to automatyzacja aplikacji internetowych za pośrednictwem klientów przeglądarek w celach testowych i z pewnością nie ogranicza się do tego.
CAPTCHA
Z drugiej strony, CAPTCHA (akronim ...Całkowicie zautomatyzowany publiczny test Turinga odróżniający Komputery od ludzi...) jest rodzajem testu challenge-response używanego w informatyce do określenia, czy użytkownik jest człowiekiem.
Tak więc, selen i CAPTCHA służą dwóm zupełnie różnym celom i idealnie nie powinny być używane do realizacji powiązanych ze sobą zadań.
ReCAPTCHA może łatwo wykryć ruch sieciowy i zidentyfikować twój program jako selen napędzany bot.Rozwiązanie Ogólne
Istnieją jednak pewne ogólne metody, które pozwalają uniknąć wykrycia podczas skrobania stron internetowych:]}- pierwszy i najważniejszy atrybut strony internetowej może określić skrypt / program poprzez to, że rozmiar monitora. Dlatego zaleca się , a nie używanie konwencjonalnego Viewportu.
- Jeśli musisz wysłać wiele żądań do strony internetowej, zmieniaj użytkownika Agent na każde żądanie. Tutaj znajdziesz szczegółową dyskusję na temat Jak zmienić Google Chrome user agent w Selenium?
- aby symulować ludzkie zachowanie, możesz wymagać spowolnienia wykonywania skryptu nawet poza WebDriverWaiti expected_conditions indukowanie
time.sleep(secs)
. Tutaj znajdziesz szczegółową dyskusję na temat jak usypiać Selenium WebDriver w Pythonie przez milisekundy
This use case
Jednak w kilku przypadkach udało nam się wejść w interakcję z reCAPTCHA za pomocą selenu i więcej szczegółów można znaleźć w następujących dyskusjach:
- Jak kliknąć reCAPTCHA za pomocą Selenium i Java
- selektor CSS dla checkbok reCAPTCHA przy użyciu Selenium i VBA Excel
- Znajdź element reCAPTCHA i kliknij na niego-Python + Selen
Referencje
Możesz znaleźć kilka powiązanych dyskusji w:
- jak zrobić skrypt Selenium niewykrywalny za pomocą GeckoDriver i Firefox przez Python?
- czy istnieje wersja Selenium WebDriver, która nie jest wykrywalna?
Tl; dr
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-02-06 13:15:48
Aby ominąć CAPTCHA podczas skrobania Google, musisz ręcznie rozwiązać CAPTCHA i wyeksportować pliki cookie, które daje Ci Google. Teraz za każdym razem, gdy otwierasz Selenium WebDriver, upewnij się, że dodajesz wyeksportowane pliki cookie. Plik cookie GOOGLE_ABUSE_EXEMPTION jest tym, którego szukasz, ale chciałbym zapisać wszystkie pliki cookie, aby być na bezpiecznej stronie.
Jeśli chcesz uzyskać dodatkową warstwę stabilności w swoich zadrapaniach, powinieneś wyeksportować kilka ciasteczek i niech twój skrypt losowo wybierze jeden z nich za każdym razem, gdy ping Google.
Te pliki cookie mają długą datę ważności, więc nie musisz codziennie otrzymywać nowych plików cookie.
Aby uzyskać pomoc w zapisywaniu i ładowaniu plików cookie w Pythonie i Selenium, powinieneś sprawdzić tę odpowiedź: Jak zapisywać i ładować pliki cookie za pomocą Python + Selenium WebDriver
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-02-06 13:20:15