Índice
Nuevo soporte de API de Geetest
¿Qué es "nuevo Geetest"?
Son desafíos que generalmente requieren que el usuario alinee y haga clic en ciertas imágenes.
Para su conveniencia, hemos implementado soporte para Geetest API. Si su software funciona con él y admite una configuración mínima, debería poder decodificar Geetest usando Death By Captcha en poco tiempo.
- Geetest API: Proporcione una URL del sitio y la clave de Geetest del sitio, la API devuelve un token que usará para enviar el formulario en la página con el desafío de Geetest.
Precios
Por el momento, el precio es $2.99/1k por desafíos Geetest resueltos correctamente. No se le facturará por Geetest reportado como resuelto incorrectamente. Tenga en cuenta que este precio se aplica solo a los nuevos desafíos de Geetest, por lo que solo los clientes que usan esta API específica se le cobrará dicha tarifa.
Geetest API Preguntas frecuentes:
- ¿Cuál es la URL de la API Geetest?
-
Para utilizar la API Geetest, deberá enviar una solicitud de POST HTTP a http://api.dbcapi.me/api/captcha
- ¿Cuáles son los parámetros de POST para la API Geetest v3?
-
- username: El nombre de usuario de su cuenta de DBC
- password: La contraseña de su cuenta de DBC
- type=8: El tipo 8 especifica que esto es un API de Geetest
- geetest_params=json(payload): los datos para acceder al desafío de Geetest Estructura de carga utilizando JSON:
-
proxy: Su url de proxy y credenciales (si las hay). Ejemplos:
- http://127.0.0.1:3128
- http://user:password@127.0.0.1:3128
-
proxytype: Su protocolo de conexión proxy. Para conocer los tipos de proxy compatibles, consulte ¿Qué tipos de proxy son compatibles?. Ejemplo:
- HTTP
-
gt: Valor del parámetro GT que encontró en el sitio web.
Ejemplo:
- 022397c99c9f646f6477822485f30404
-
challenge: El valor del parámetro "challenge" que encontró en el sitio web objetivo.
Ejemplo:
- 38c0168576e204c23a4863a16202cac9
- pageurl: La URL de la página con los desafíos de Geetest. Esta URL debe incluir la ruta en la que se carga Geetest. Ejemplo: si el Geetest que desea resolver está en http://test.com/path1, la pageurl debe ser http://test.com/path1 y no http://test.com.
El parámetro proxy es opcional, pero recomendamos encarecidamente usar uno para evitar el rechazo de la página proporcionada debido a inconsistencias entre la IP que resolvió el captcha (el nuestro si no se proporciona ningún proxy) y la IP que presentó la solución para la verificación (tuya).
Nota: Si se proporciona proxy, proxytype es un parámetro requerido.
Ejemplo completo de geetest_params:
{ "proxy": "http://user:password@127.0.0.1:1234", "proxytype": "HTTP", "gt": "022397c99c9f646f6477822485f30404", "challenge": "4c95da9e91b49a980a3b79cd7506f12b", "pageurl": "https://testsite.com/xxx-test" }
- ¿Cuáles son los parámetros POST para la API Geetest v4?
-
- username: El nombre de usuario de su cuenta de DBC
- password: La contraseña de su cuenta de DBC
- type=9: Tipo 9 especifica que esto es un Geetest API
- geetest_params=json(payload): los datos para acceder al desafío de Geetest Estructura de carga utilizando JSON:
-
proxy: Su url de proxy y credenciales (si las hay). Ejemplos:
- http://127.0.0.1:3128
- http://user:password@127.0.0.1:3128
-
proxytype: Su protocolo de conexión proxy. Para conocer los tipos de proxy compatibles, consulte ¿Qué tipos de proxy son compatibles?. Ejemplo:
- HTTP
-
captcha_id: Valor del parámetro CAPTCHA_ID que encontró en el sitio web objetivo.
Ejemplo:
- fcd636b4514bf7ac4143922550b3008b
- pageurl: La URL de la página con los desafíos de Geetest. Esta URL debe incluir la ruta en la que se carga Geetest. Ejemplo: si el Geetest que desea resolver está en http://test.com/path1, la pageurl debe ser http://test.com/path1 y no http://test.com.
Ejemplo completo de geetest_params:
{ "proxy": "http://user:password@127.0.0.1:1234", "proxytype": "HTTP", "captcha_id": "fcd636b4514bf7ac4143922550b3008b", "pageurl": "https://testsite.com/xxx-test" }
- ¿Cuál es la respuesta de la API V3 Geetest V3 ?
-
-
La respuesta de la API Geetest tiene la siguiente estructura. Es válido para un uso y tiene una vida útil de 2 minutos. Será una cadena como la siguiente:
{ "challenge": "4c95da9e91b49a980a3b79cd7506f12b", "validate": "6496091eb0fb5a83fef98829d034128b", "seccode": "6496091eb0fb5a83fef98829d034128b|jordan" }
- ¿Cuál es la respuesta de la API Geetest V4 ?
-
-
La respuesta de la API Geetest tiene la siguiente estructura. Es válido para un uso y tiene una vida útil de 2 minutos. Será una cadena como la siguiente:
{ "captcha_id": "fcd636b4514bf7ac4143922550b3008b", "lot_number": "42c9b8b653c04049b3315cc1df8bf474", "pass_token": "c77f93d1cd1e634a67d1c67bdccf8b5501bfba9858cbc102138fa60b2c532f51", "gen_time": "1666447340", "captcha_output": "[base64_encoded_output]" }
- ¿Qué tipos de proxy son compatibles?
-
-
Actualmente, solo se admiten http proxies. El soporte para otros tipos se agregará en el futuro.
Uso de Geetest API con clientes API:
1) PYTHON
import deathbycaptcha
import json
# Put your DBC account username and password here.
username = "username"
password = "password"
# you can use authtoken instead of user/password combination
# activate and get the authtoken from DBC users panel
authtoken = "authtoken"
# Put the proxy and geetest data
Captcha_dict = {
'proxy': 'http://user:password@127.0.0.1:1234',
'proxytype': 'HTTP',
'captcha_id': 'fcd636b4514bf7ac4143922550b3008b',
'pageurl': 'https://testsite.com/xxx-test'}
# Create a json string
json_Captcha = json.dumps(Captcha_dict)
# to use socket client
# client = deathbycaptcha.SocketClient(username, password, authtoken)
# to use http client
client = deathbycaptcha.HttpClient(username, password, authtoken)
try:
balance = client.get_balance()
print(balance)
# Put your CAPTCHA type and Json payload here:
captcha = client.decode(type=9, geetest_params=json_Captcha)
if captcha:
# The CAPTCHA was solved; captcha["captcha"] item holds its
# numeric ID, and captcha["text"] item its list of "coordinates".
print ("CAPTCHA %s solved: %s" % (captcha["captcha"], captcha["text"]))
# # To access the response by item
# print ("captcha_id:", captcha["text"]["captcha_id"])
# print ("lot_number:", captcha["text"]["lot_number"])
# print ("pass_token:", captcha["text"]["pass_token"])
# print ("gen_time:", captcha["text"]["gen_time"])
# print ("captcha_output:", captcha["text"]["captcha_output"])
if '': # check if the CAPTCHA was incorrectly solved
client.report(captcha["captcha"])
except deathbycaptcha.AccessDeniedException:
# Access to DBC API denied, check your credentials and/or balance
print ("error: Access to DBC API denied," +
"check your credentials and/or balance")