Índice
Suporte do novo API Geetest
O que é o “novo Geetest”?
São desafios onde normalmente requer o usuário alinhar e clicar em certas imagens.
Para sua conveniência, nós implementamos o suporte para o API Geetest. Se o seu software tiver compatibilidade com ele e suporte configurações mínimas, você conseguira rapidamente decodificar Geetests utilizando Death By Captcha.
- Geetest API: Provido do URL de um website e uma chave pública do Geetest, o API retorna um token que será utilizado para enviar um formulário na página com o desafio Geetest.
Preço
Por enquanto, o preço é $2,99/1k de desafios Geetest resolvidos corretamente. Você não será cobrado por Geetest que foram incorretamente resolvidos. Note que esse preço se aplica apenas para novos desafios Geetest apenas, por isso, apenas clientes usando esse API específico serão cobradas as taxas mencionadas.
FAQ (perguntas frequentes) para o API Geetest
- Qual é o URL do API Geetest?
-
Para usar o API Geetest você terá que enviar uma solicitação HTTP POST para http://api.dbcapi.me/api/captcha
- Quais são os parâmetros POST para API de Geetest v3?
-
- username: Seu nome de usuário da sua conta DBC
- password: Sua senha da sua conta DBC
- type=8: Type 8 especifica que é API Geetest
- geetest_params=json(payload): a informação para acessar o desafio geetest Estrutura json payload:
-
proxy: o url do seu proxy e credenciais (se tiver). Exemplos:
- http://127.0.0.1:3128
- http://user:password@127.0.0.1:3128
-
proxytype: seu protocolo de conexão proxy. Para tipos de proxy com suporte, consulte Quais tipos de proxy tem suporte?. Exemplo:
- HTTP
-
gt: Valor do parâmetro gt que você encontrou no site de destino.
Exemplo:
- 022397c99c9f646f6477822485f30404
-
challenge: Valor do parâmetro de desafio que você encontrou no site de destino.
Exemplo:
- 38c0168576e204c23a4863a16202cac9
- pageurl: o url da página com os desafios Geetest. Esse url terá que incluir o caminho no qual o Geetest será carregado. Exemplo: se o Geetest que você quer solucionar é em http://test.com/path1, pageurl terá que ser em http://test.com/path1 e não em http://test.com.
O parâmetro de proxy é opcional, mas é altamente recomendável que use para prevenir rejeição de token pela página inserida pela possível inconsistência entre o IP que solucionou o captcha (nosso, caso nenhum proxy tenha sido usado) e o IP fornecido ao solução para verificação (o seu).
OBS: caso o proxy foi fornecido, proxytype é um parâmetro necessário.
Exemplo 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" }
- Quais são os parâmetros POST para API de Geetest v4?
-
- username: Seu nome de usuário da sua conta DBC
- password: Sua senha da sua conta DBC
- type=9: Type 9 especifica que é API Geetest
- geetest_params=json(payload): a informação para acessar o desafio geetest Estrutura json payload:
-
proxy: o url do seu proxy e credenciais (se tiver). Exemplos:
- http://127.0.0.1:3128
- http://user:password@127.0.0.1:3128
-
proxytype: seu protocolo de conexão proxy. Para tipos de proxy com suporte, consulte Quais tipos de proxy tem suporte?. Exemplo:
- HTTP
-
captcha_id: Valor do parâmetro captcha_id que você encontrou no site de destino.
Exemplo:
- fcd636b4514bf7ac4143922550b3008b
- pageurl: o url da página com os desafios Geetest. Esse url terá que incluir o caminho no qual o Geetest será carregado. Exemplo: se o Geetest que você quer solucionar é em http://test.com/path1, pageurl terá que ser em http://test.com/path1 e não em http://test.com.
Exemplo completo de geetest_params:
{ "proxy": "http://user:password@127.0.0.1:1234", "proxytype": "HTTP", "captcha_id": "fcd636b4514bf7ac4143922550b3008b", "pageurl": "https://testsite.com/xxx-test" }
- Qual será a resposta dada pelo API Geetest v3?
-
-
A resposta do API Geetest tem a seguinte estrutura: é válido um uso e tem duração de 2 minutos. Será uma string de tal forma:
{ "challenge": "4c95da9e91b49a980a3b79cd7506f12b", "validate": "6496091eb0fb5a83fef98829d034128b", "seccode": "6496091eb0fb5a83fef98829d034128b|jordan" }
- Qual será a resposta dada pelo API Geetest v4?
-
-
A resposta do API Geetest tem a seguinte estrutura: é válido um uso e tem duração de 2 minutos. Será uma string de tal forma:
{ "captcha_id": "fcd636b4514bf7ac4143922550b3008b", "lot_number": "42c9b8b653c04049b3315cc1df8bf474", "pass_token": "c77f93d1cd1e634a67d1c67bdccf8b5501bfba9858cbc102138fa60b2c532f51", "gen_time": "1666447340", "captcha_output": "[base64_encoded_output]" }
- Quais tipos de proxy tem suporte?
-
-
Atualmente, apenas proxys de HTTP são suportados. Suporte para outros tipos serão adicionados no futuro.
Usando o API Geetest com programas 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")