Proxy a proxyless w rozwiązywaniu captcha: którego typu zadania potrzebujesz?
Scarnox oferuje PopularCaptcha w dwóch wariantach: proxyless, gdzie Scarnox rozwiązuje captcha przez własną sieć, oraz wariant z proxy, gdzie podajesz proxy, którego używa twój bot. Oba zwracają token w tym samym kształcie odpowiedzi, a oba są bezpłatne, gdy rozwiązanie się nie uda. Jedyna różnica w żądaniu to proxy.
Proxyless to właściwy punkt startowy dla większości stron. Wyślij własne proxy tylko wtedy, gdy strona wiąże token z adresem IP.
Dwa typy zadań
| Typ zadania | Co wysyłasz |
|---|---|
PopularCaptchaTaskProxyless | sitekey i adres URL strony |
PopularCaptchaTask (wariant z proxy) | sitekey, adres URL strony i twoje proxy |
Oba są zadaniami PopularCaptcha. Reszta żądania, odpowiedź i obsługa tokena są takie same.
Zacznij od proxyless
Rozwiązania proxyless działają w sieci własnej Scarnox. Integracja jest najprostszą, jaką możesz napisać, a dla większości stron token działa niezależnie od tego, który adres IP później go wyśle. Jeśli nie masz pewności, którego potrzebujesz, zacznij tutaj:
{
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/signup"
}
Wyślij proxy, gdy token jest związany z IP
Niektóre strony sprawdzają, czy adres IP, który rozwiązał captcha, jest tym samym adresem IP, który wysyła formularz. Objaw jest wyraźny: tokeny wracają bez błędów, ale strona odrzuca je za każdym razem. Rozwiązaniem jest rozwiązywanie przez to samo proxy, którego bot używa w reszcie sesji:
{
"captcha_type": "PopularCaptchaTask",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/signup",
"proxy": "http://user:pass@203.0.113.10:8080"
}
Format proxy to http://user:pass@host:port. Używaj tego samego proxy do rozwiązania i do wysłania oraz utrzymuj je na stałe przez całą sesję. Zmiana proxy między rozwiązaniem a wysłaniem przywraca niezgodność adresów IP.
Jak zdecydować
Przejdź przez te pytania po kolei:
- Czy token działa, gdy wyślesz go z innej maszyny? Jeśli tak, użyj proxyless.
- Czy strona odrzuca tokeny tylko wtedy, gdy wysyłający adres IP różni się od rozwiązującego? Jeśli tak, wyślij proxy.
- Czy strona używa ciasteczka sesji albo sprawdzenia urządzenia związanego z jednym IP? Jeśli tak, wyślij proxy i zachowaj ten sam IP przez całą sesję.
Przetestuj oba warianty na darmowym okresie próbnym, zanim się zdecydujesz. Załóż konto i zacznij z darmowym kredytem próbnym, bez karty, a potem uruchom ten sam przepływ raz dla każdego typu.
Jeśli twoje proxy nie działa
Nieudane rozwiązanie jest bezpłatne. Jeśli proxy nie działa albo zostało zablokowane przez cel, rozwiązanie się nie udaje i nie zostaniesz za nie obciążony. Przetestuj proxy samodzielnie przed uruchomieniem, sprawdź jego format i upewnij się, że cel nie blokuje jego zakresu adresów. Proxy, które działa dla przeglądarki, ale zawodzi przy rozwiązaniu, zwykle ma problem z formatem.
Trzymaj dane logowania proxy poza logami
Adres proxy z hasłem to sekret. Przechowuj go w zmiennej środowiskowej albo menedżerze sekretów. Nie wypisuj go w logach, nie commituj go i nie wklejaj do zgłoszeń błędów. Jeśli logujesz żądanie rozwiązania w celach debugowania, najpierw usuń pole proxy.
Wybór proxy dla wariantu
Rozwiązanie działa z każdym proxy, które wyślesz, ale token jest użyteczny tylko wtedy, gdy formularz wysyła ten sam IP. Używaj adresu rezydencjalnego albo statycznego, który kontrolujesz, przez całą sesję, a nie puli, która rotuje przy każdym żądaniu. Strony wiążące tokeny z IP zwykle wiążą też sesję, więc rotująca pula psuje przepływ podwójnie.
A szybkość?
Oba warianty zwracają token z jednego blokującego żądania, bez pętli odpytywania. Limit czasu jest taki sam: około 185 sekund. Wybieraj wariant ze względu na pytanie o IP, a nie szybkość.
Sesje i proxy w praktyce
Używaj tego samego proxy od pierwszego żądania sesji do ostatniego. Typowy przepływ ładuje stronę rejestracji, rozwiązuje captcha i wysyła formularz. Jeśli załadowanie strony przechodzi przez jeden adres, a rozwiązanie przez inny, strona wiążąca tokeny z IP może odrzucić token, mimo że wszystko inne wygląda poprawnie.
Trzymaj jedno ustawienie proxy w kodzie i przekazuj je każdemu krokowi, który dotyka strony. Jeśli inne części zadania rotują proxy do scrapingu, daj przepływowi captcha własne stałe proxy. Mieszanie tych dwóch to jeden z najczęstszych powodów, dla których token działający w testach zawodzi w produkcji.
Ustawiaj pole proxy tylko w wariancie, który go używa. Wysyłanie proxy z typem zadania proxyless nie poprawia rozwiązania, a utrudnia odczytanie logów, bo nie widać, w jakim trybie działał dany przebieg.
Czytanie logów, żeby uzyskać właściwą odpowiedź
Jeśli nie wiesz, którego trybu potrzebuje strona, uruchom oba na tej samej stronie i porównaj. Loguj, czy każdy token został zaakceptowany, wraz z typem zadania i informacją, czy wysłano proxy. Strona, która konsekwentnie akceptuje tokeny proxyless, nie potrzebuje wariantu z proxy. Strona, która odrzuca je tylko z niektórych przebiegów, wskazuje na kontrolę IP. Niech decydują logi, a nie zgadywanie.
Dalsze kroki
- Jak rozwiązać PopularCaptcha w Pythonie
- Niewidoczne captcha
- Ponawianie i obsługa błędów, które wytrzymują produkcję
- Darmowy okres próbny solvera captcha
Zacznij z darmowym kredytem próbnym, bez karty: załóż konto i wypróbuj oba typy zadań na jednej stronie.