指数
新的Geetest API支持
什么是“新的Geetest”?
他们面临的挑战通常要求用户对齐并单击某些图像。
为了方便起见,我们实现了对Geetest API的支持。如果您的软件可以使用它并支持最小配置,则应立即使用Death By Captcha解码Geetest。
- Geetest API: 提供了一个网站URL和GEETEST网站密钥,API返回一个令牌,您将使用该代币在页面中与Geetest挑战一起提交表格。
价钱
暂时,价格为 $2.99/1K Geetest的挑战正确解决了。据报道,您不会为您的geetest收费。请注意,此定价仅适用于新的Geetest挑战,因此只有使用此特定API的客户才会收取上述费率。
Geetest API常见问题解答:
- Geetest v3 API的POST参数是什么?
-
- username: 您的DBC帐户用户名
- password: 您的DBC帐户密码
- type=8: 类型8指定这是一个Geetest API
- geetest_params=json(payload): 访问Geetest挑战的数据 JSON有效负载结构:
-
proxy: 您的代理URL和凭据(如果有)。例证:
- http://127.0.0.1:3128
- http://user:password@127.0.0.1:3128
-
proxytype: 您的代理连接协议。有关支持的代理类型,请参见支持哪些代理类型? 示例:
- HTTP
-
gt: 您在目标网站上找到的GT参数的值。
例子:
- 022397c99c9f646f6477822485f30404
-
challenge: 您在目标网站上找到的"challenge"参数的值。
例子:
- 38c0168576e204c23a4863a16202cac9
- pageurl: Geetest挑战页面的URL。这个URL必须包含Geetest加载的路径。例如:如果您要解决的Geetest在http://test.com/path1中,则pageurl必须是http://test.com/path1,而不是http://test.com。
代理参数是可选的,但是我们强烈建议使用一个解决方案的IP之间的不一致之处,以防止提供的页面拒绝(如果没有提供代理)和提交的IP验证解决方案(您的)。
注意:如果提供了代理,则proxytype是必需的参数。
geetest_params的完整示例:
{ "proxy": "http://user:password@127.0.0.1:1234", "proxytype": "HTTP", "gt": "022397c99c9f646f6477822485f30404", "challenge": "4c95da9e91b49a980a3b79cd7506f12b", "pageurl": "https://testsite.com/xxx-test" }
- Geetest v4 API 的 POST 参数是什么?
-
- username: 您的DBC帐户用户名
- password: 您的DBC帐户密码
- type=9: 类型9指定这是Geetest API
- geetest_params=json(payload): 访问Geetest挑战的数据 JSON有效负载结构:
-
proxy: 您的代理URL和凭据(如果有)。例证:
- http://127.0.0.1:3128
- http://user:password@127.0.0.1:3128
-
proxytype: 您的代理连接协议。有关支持的代理类型,请参见支持哪些代理类型? 示例:
- HTTP
-
captcha_id: 您在目标网站上找到的Captcha_id参数的值。
例子:
- fcd636b4514bf7ac4143922550b3008b
- pageurl: Geetest挑战页面的URL。这个URL必须包含Geetest加载的路径。例如:如果您要解决的Geetest在http://test.com/path1中,则pageurl必须是http://test.com/path1,而不是http://test.com。
geetest_params的完整示例:
{ "proxy": "http://user:password@127.0.0.1:1234", "proxytype": "HTTP", "captcha_id": "fcd636b4514bf7ac4143922550b3008b", "pageurl": "https://testsite.com/xxx-test" }
- geetest v3 api 的响应是什么?
-
-
Geetest API响应具有以下结构。它有效一种用途,并具有2分钟的寿命。这将是如下的字符串:
{ "challenge": "4c95da9e91b49a980a3b79cd7506f12b", "validate": "6496091eb0fb5a83fef98829d034128b", "seccode": "6496091eb0fb5a83fef98829d034128b|jordan" }
- geetest v4 api 的响应是什么?
-
-
Geetest API响应具有以下结构。它有效一种用途,并具有2分钟的寿命。这将是如下的字符串:
{ "captcha_id": "fcd636b4514bf7ac4143922550b3008b", "lot_number": "42c9b8b653c04049b3315cc1df8bf474", "pass_token": "c77f93d1cd1e634a67d1c67bdccf8b5501bfba9858cbc102138fa60b2c532f51", "gen_time": "1666447340", "captcha_output": "[base64_encoded_output]" }
- 支持哪些代理类型?
-
-
当前,仅支持 http 代理。对其他类型的支持将来会添加。
与API客户端一起使用Geetest 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")