Menu

Obejście ekranu antybotowego

To rodzaj zadania, w którym nasz pracownik przechodzi na wybraną przez ciebie stronę internetową, omija wszelkie ekrany antybotowe, łapie ciasteczka i zwraca je do twojej aplikacji. Następnie możesz użyć tych ciasteczek do swobodnego poruszania się po tej stronie za pomocą swojego ulubionego języka programowania. Aby skutecznie ominąć tego typu strony wyłapujące boty, potrzebna będzie również wartość User-Agent przeglądarki naszego pracownika oraz dostarczenie nam dobrej jakości proxy. Bez proxy ta metoda nie zadziała, ponieważ wszystkie rozwiązania antybotowe dopasowują swoje ciasteczka do adresu IP odwiedzającego i jego User-Agent.
Przykład ekranu antybotowego
Co chwytamy na ostatniej stronie:
  • Cookies
  • Odcisk palca przeglądarki
  • Nagłówki ostatniego żądania HTTP wykonanego z głównej ramki okna

Ta technologia zbudowana jest na bazie naszego rozwiązania Szablony AntiGate, z tą różnicą, że my zarządzamy szablonami samodzielnie i aktualizujemy je. Stosowanie tego rodzaju zadania wymaga subskrypcji, kosztującej 5 kredytów za każde zadanie. Ceny subskrypcji zaczynają się od $9.90 za miesiąc, w zestawie 5,000 obejść. Jeśli nie chcesz kupować subskrypcji, możesz stworzyć szablon samodzielnie z pomocą tego samouczka i płacić już tylko ze swojego salda, a koszt wyniesie około $0.002 za zadanie.

Cały proces jest kontrolowany przez wtyczkę przeglądarki, którą nasi pracownicy instalują przed otrzymaniem zleceń. Nie robią nic ręcznie, automatycznie otwierana jest nowa karta z włączonym proxy, nawiguje do wybranej strony, czeka, aż ekran antybotowy zostanie pokonany, pobiera dane, zamyka kartę i przekazuje dane do twojej aplikacji za pośrednictwem API.

Akceptowane są wyłącznie wysokiej jakości proxy. Żadnych nazw hosta, żadnych "proxy rezydencjalnych", żadnych współdzielonych pul proxy. Wynajęcie VPS w USA/Europie i zainstalowanie na nim serwera SQUID z pomocą naszych instrukcji zawsze zadziała. Proxy są sprawdzane pod kątem szybkości i kompatybilności przed wykonaniem zadania. Muszą być w stanie odpowiedzieć szybko - poniżej 1 sekundy, w przeciwnym razie pracownicy będą anulować twoje zadania.

Sprawdź, czy strona internetowa ma obsługiwany ekran antybotowy:

Ten nie jest jeszcze obsługiwany. Skontaktuj się z nami poprzez ticket, aby poprosić o wsparcie.

Trzeba pamiętać, że niektóre ekrany antybotowe stosują zaawansowane techniki tworzenia odcisku palca jak SSL handshake fingerprinting, co może pozwolić na identyfikację rodzaju klienta SSL/TLS łączącego się ze stroną. Dla przykładu, przeglądarka Chrome ma swój odcisk palca, Firefox - swój, zaś CURL zupełnie inny. Nie należy mylić tego z pojęciem User-Agent, gdyż chodzi o coś nieco bardziej niskopoziomowego. W tym przypadku, aby korzystać z naszej usługi, musisz korzystać z tej samej instancji przeglądarki, by zrekonstruować sesję naszego pracownika. Ponieważ większość naszych pracowników korzysta z Chrome, połączenie NodeJS+Puppeteer+Chromium lub Selenium+Chromedriver doskonale wpasuje się w tę rolę. Dostępne są przykłady.

Obiekt typu zadanie

Właściwość/atrybutTypWymaganyPrzeznaczenie
typeŁańcuch znaków (String)TakAntiBotCookieTask
websiteURLŁańcuch znaków (String)TakAdres docelowej strony, gdzie skierujemy pracownika.
proxyAddressŁańcuch znaków (String)TakAdres IPv4/IPv6 proxy. Nie stosować nazw hostów ani adresów IP z sieci lokalnych.
proxyPortIntegerTakPort proxy
proxyLoginŁańcuch znaków (String)TakLogin dla proxy wymagających uwierzytelniania (podstawowe)
proxyPasswordŁańcuch znaków (String)TakHasło proxy

Przykład żądania

Python
Javascript
PHP
#pip3 install anticaptchaofficial

from anticaptchaofficial.antibotcookietask import *
import requests

solver = antibotcookieTask()
solver.set_verbose(1)
solver.set_key("API_KEY_HERE")
solver.set_website_url("https://www.somewebsite.com/")
solver.set_proxy_address("1.2.3.4")
solver.set_proxy_port(3128)
solver.set_proxy_login("login")
solver.set_proxy_password("password")

# Specify softId to earn 10% commission with your app.
# Get your softId here: https://anti-captcha.com/clients/tools/devcenter
solver.set_soft_id(0)

result = solver.solve_and_return_solution()
if result == 0:
    print("could not solve task")
    exit()

print(result)

cookies, localStorage, fingerprint = result["cookies"], result["localStorage"], result["fingerprint"]

if len(cookies) == 0:
    print("empty cookies, try again")
    exit()

cookie_string = '; '.join([f'{key}={value}' for key, value in cookies.items()])
user_agent = fingerprint['self.navigator.userAgent']
print(f"use these cookies for requests: {cookie_string}")
print(f"use this user-agent for requests: {user_agent}")

s = requests.Session()
proxies = {
  "http": "http://login:password@1.2.3.4:3128",
  "https": "http://login:password@1.2.3.4:3128"
}
s.proxies = proxies

content = s.get("https://www.somewebsite.com/", headers={
    "Cookie": cookie_string,
    "User-Agent": user_agent
}).text
print(content)

Obiekt typu rozwiązanie zadania

Właściwość/atrybutTypPrzeznaczenie
cookiesObiekt (object)Ciasteczka ze strony za ekranem antybotowym. Połącz je wszystkie razem i użyj w swoich żądaniach HTTP.
localStorageObiekt (object)Podobnie jak ciasteczka, obiekt z wartościami localStorage przechwycony na ostatniej stronie.
fingerprintObiekt (object)Parametry odcisku palca przeglądarki. Wraz z ciasteczkami i localStorage wykorzystasz je do odtworzenia sesji przeglądarki pracownika w swojej aplikacji.
Użyj wartości "self.navigator.userAgent" w polu user-agent żądań HTTP.
urlŁańcuch znaków (String)URL strony na której zakończono wykonywanie szablonu
lastRequestHeadersTablica (Array)Ostatnie nagłówki żądań, które zostały wysłane do strony internetowej z głównej ramki okna przeglądarki.

Przykład odpowiedzi

{
    "errorId": 0,
    "status": "ready",
    "solution": {
        "cookies": {
            "some_antibotcookie": "0A8VO9NX5N1s4LRoS4sJlFTCNzLj0dEfA_2whUh0E6ZjgQtM~I1cV7U2IhQx0~jnowNjg-Oi76b-MjYPd1GQAmIxh5-v~33PI8F",
            "maybe_another_id": "join_all_cookies_together"
        },
        "localStorage": {
            "some_value": "Might be used too in the future as a method to 'remember' visitors, so we collect it too.",
            "what_is_it": "localStorage is a more complex analogue of cookies, allowing to store larger objects in browser memory"
        },
        "fingerprint": {
            "self.navigator.userAgent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/101.0.0.0 Safari\/537.36",
            "self.screen.width": 1280,
            "self.screen.height": 768,
            "self.screen.availWidth": 1280,
            "self.screen.availHeight": 768,
            "self.screen.availLeft": 0,
            "self.screen.availTop": 25,
            "self.navigator.vendorSub": "",
            "self.navigator.productSub": "20030107",
            "self.navigator.vendor": "Google Inc.",
            "self.navigator.maxTouchPoints": 0,
            "self.navigator.hardwareConcurrency": 8,
            "self.navigator.cookieEnabled": true,
            "self.navigator.appCodeName": "Mozilla",
            "self.navigator.appName": "Netscape",
            "self.navigator.appVersion": "5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/101.0.0.0 Safari\/537.36",
            "self.navigator.platform": "MacIntel",
            "self.navigator.product": "Gecko",
            "self.navigator.language": "en-US",
            "self.navigator.onLine": true,
            "self.navigator.deviceMemory": 4
        },
        "url": "https://www.thewebsite.com/some/final/path/after_redirects",
        "lastRequestHeaders": [
            "sec-ch-device-memory: 8",
            "sec-ch-ua: \" Not A;Brand\";v=\"99\", \"Chromium\";v=\"101\", \"Google Chrome\";v=\"101\"",
            "sec-ch-ua-mobile: ?0",
            "sec-ch-ua-arch: \"x86\"",
            "sec-ch-ua-platform: \"macOS\"",
            "sec-ch-ua-model: \"\"",
            "sec-ch-ua-full-version-list: \" Not A;Brand\";v=\"99.0.0.0\", \"Chromium\";v=\"101.0.5005.115\", \"Google Chrome\";v=\"101.0.5005.115\"",
            "Upgrade-Insecure-Requests: 1",
            "User-Agent: Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/101.0.0.0 Safari\/537.36",
            "Accept: text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/avif,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3;q=0.9",
            "Sec-Fetch-Site: same-origin",
            "Sec-Fetch-Mode: navigate",
            "Sec-Fetch-Dest: document",
            "Referer: https:\/\/somewebsite.com\/",
            "Accept-Encoding: gzip, deflate, br",
            "Accept-Language: en-US,en;q=0.9",
            "Cookie: some_antibotcookie=0A8VO9NX5N1s4LRoS4sJlFTCNzLj0dEfA_2whUh0E6ZjgQtM~I1cV7U2IhQx0~jnowNjg-Oi76b-MjYPd1GQAmIxh5-v~33PI8F"
        ]
    },
    "cost": "0.00858",
    "ip": "5.25.11.114",
    "createTime": 1637841143,
    "endTime": 1637841189,
    "solveCount": 0
}