Obejście ekranu antybotowego
- 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.
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:
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ść/atrybut | Typ | Wymagany | Przeznaczenie |
---|---|---|---|
type | Łańcuch znaków (String) | Tak | AntiBotCookieTask |
websiteURL | Łańcuch znaków (String) | Tak | Adres docelowej strony, gdzie skierujemy pracownika. |
proxyAddress | Łańcuch znaków (String) | Tak | Adres IPv4/IPv6 proxy. Nie stosować nazw hostów ani adresów IP z sieci lokalnych. |
proxyPort | Integer | Tak | Port proxy |
proxyLogin | Łańcuch znaków (String) | Tak | Login dla proxy wymagających uwierzytelniania (podstawowe) |
proxyPassword | Łańcuch znaków (String) | Tak | Hasło proxy |
Przykład żądania
#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ść/atrybut | Typ | Przeznaczenie |
---|---|---|
cookies | Obiekt (object) | Ciasteczka ze strony za ekranem antybotowym. Połącz je wszystkie razem i użyj w swoich żądaniach HTTP. |
localStorage | Obiekt (object) | Podobnie jak ciasteczka, obiekt z wartościami localStorage przechwycony na ostatniej stronie. |
fingerprint | Obiekt (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 |
lastRequestHeaders | Tablica (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
}