Как решить Geetest Captcha на Python | Полный учебник

Geetest CAPTCHA - это популярный сервис CAPTCHA, известный своими сложными и интерактивными задачами. Эти задачи разработаны, чтобы отличить человеческих пользователей от автоматических ботов. Этот учебник проведет вас через процесс решения Geetest CAPTCHA с использованием Python. В конце этого учебника вы будете иметь четкое представление о том, как решать Geetest CAPTCHA для ваших проектов по веб-скрапингу или автоматизации.
Что такое Geetest
Столкновение с CAPTCHA может быть разочаровывающим, особенно когда вы пытаетесь автоматизировать задачи, такие как веб-скрапинг или извлечение данных. Geetest CAPTCHA, с ее инновационными и сложными тестами, добавляет еще один уровень сложности.
Geetest CAPTCHA представляет собой ряд тестов, от головоломок со скольжением до выбора изображений, соответствующих описанию. Эти тесты разработаны так, чтобы быть легкими для людей, но сложными для ботов. Для веб-разработчиков и аналитиков данных это представляет значительную проблему при автоматизации сбора данных или взаимодействия с сайтами, защищенными Geetest CAPTCHA.
Типы Geetest
Geetest - это широко используемая система CAPTCHA, предназначенная для различения людей и ботов, представляя интерактивные задачи, которые сложно решить автоматическим скриптам. Здесь мы рассмотрим различные типы задач Geetest и их характеристики.
1. Слайд CAPTCHA
Слайд CAPTCHA - самая распространенная форма Geetest. Пользователям нужно перетащить ползунок в определенное положение, чтобы завершить проверку. Этот тип CAPTCHA прост и интуитивно понятен, эффективно предотвращая автоматические атаки. Он полагается на ручную операцию пользователя, что делает его сложным для имитации ботами.

2. Клик по иконке CAPTCHA
Клик по иконке CAPTCHA требует от пользователей нажимать на определенные иконки или изображения. Этот тип CAPTCHA отображает различные иконки случайным образом и просит пользователей идентифицировать и нажать правильную иконку, таким образом проверяя подлинность пользователя. Клик по иконке CAPTCHA высоко безопасен и удобен для пользователей.

3. Gobang CAPTCHA
Gobang CAPTCHA - это более новая методика проверки. Пользователям нужно размещать определенные фишки на доске Gobang (пять в ряд) согласно подсказкам. Эта CAPTCHA не только добавляет элемент веселья, но и повышает безопасность через сложные взаимодействия, делая её трудной для решения.

4. Iconcrush CAPTCHA
Iconcrush CAPTCHA требует от пользователей перетаскивать определенные иконки на целевые позиции. Этот тип CAPTCHA сочетает в себе элементы перетаскивания и распознавания иконок, что ещё больше увеличивает сложность и безопасность процесса проверки.


5. Клик по символам CAPTCHA
Клик по символам CAPTCHA представляет пользователям серию символов или фраз, и пользователи должны нажимать на символы в правильном порядке, как указано.

6. CAPTCHA с девятью ячейками
CAPTCHA с девятью ячейками включает в себя сетку из девяти изображений, где пользователям необходимо нажимать на изображения, которые соответствуют данному запросу.

Как решение для решения CAPTCHA может помочь
Ручное решение этих задач очень сложно и проблематично, особенно при выполнении задач по веб-скрапингу. Есть несколько помощников, которыми вы можете воспользоваться, например, CapSolver, предлагающий надежное решение для автоматизации решения Geetest captchas:
Интеграция API: CapSolver предоставляет API, который позволяет программно решать Geetest captchas, что упрощает включение возможностей решения CAPTCHA непосредственно в ваши приложения на Python.
Базовый учебник
Следуйте этим шагам, чтобы интегрировать CapSolver в ваш Python-скрипт и автоматизировать решение Geetest captchas:
Как получить действительные токены
Для Geetest v4 вам нужно только получить
captcha_idдля целевого сайта; для Geetest v3 вам нужно получитьgtиchallenge.При загрузке CAPTCHA вы можете сделать запрос, начинающийся с
https://gcaptcha4.geetest.com/load?, и извлечьcaptcha_idдля этого веб-сайта из параметров запроса.После сборки параметров и их отправки в CapSolver вам не нужно беспокоиться о встрече с различными типами проверок; CapSolver автоматически распознает различные типы captchas и вернет решенную информацию о токене.
С полученной информацией о токене вы можете продолжать нормальный доступ к странице.
Использование полного примера
# pip install requests
import requests
import time
api_key = "YOUR_API_KEY" # TODO: ваш API-ключ CapSolver
site_url = "https://gt4.geetest.com/demo/login" # TODO: URL вашей страницы
captchaId = "54088bb07d2df3c46b79f80300b0abbe"
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type":"GeetestTaskProxyless",
"websiteURL": site_url,
"captchaId": captchaId
# "gt":"019924a82c70bb123aae90d483087f94", v3
# "challenge":"3d9f4667e882c105cdaa57b2f8284391", v3
# "geetestApiServerSubdomain":"api.geetest.com" v3 Optional
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Не удалось создать задачу:", res.text)
return
print(f"Получен taskId: {task_id} / Получение результата...")
while True:
time.sleep(1) # задержка
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {})
if status == "failed" или resp.get("errorId"):
print("Решение не удалось! ответ:", res.text)
return
def check_website(solution):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
"Referer": "https://gt4.geetest.com/",
}
params = {
"captcha_id": solution["captcha_id"],
"lot_number": solution["lot_number"],
"pass_token": solution["pass_token"],
"gen_time": solution["gen_time"],
"captcha_output":
solution["captcha_output"]
}
url = "https://gt4.geetest.com/demo/login"
response = requests.get(url, headers=headers, params=params).json()
if response["result"] == response["status"] == "success":
print("Успешный вход: %s" % response)
else:
print("Вход не удался: %s" % response)
if __name__ == "__main__":
token = capsolver()
print("API результат: %s" % token)
check_website(token)
Завершение
Когда вы сталкиваетесь со сложностью Geetest CAPTCHA, CapSolver предоставляет надежное решение, которое поможет вам легко интегрировать возможности решения CAPTCHA в ваши приложения на Python. Для более подробных шагов вы можете прочитать документацию. Не позволяйте Geetest быть препятствием в вашей работе или требованиях!