滑块验证码打码

有些话、适合烂在心里 提交于 2021-02-13 20:25:20

import requests
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 滑块验证码打码
# 使用如下语句,可以用S代替requests发送get请求,如果请求的网址生成了cookie,则cookie会保存在S中,下次再用s请求会带上这个cookei
s = requests.Session()
# 找到一个接口,这个接口要返回gt 和challenge,请求他,获取challenge和gt
source = s.get('http://gsxt.gzgs.gov.cn/registerValidate.jspx?t=1558493678554').json()
print(source)
gt = source['gt']
challenge = source['challenge']



# 将获取到的参数,传给极验,这里要包含用户名和密码,如果success是0,则后面要加上&model=1
second = s.get('http://jiyanapi.c2567.com/shibie?user=wangshang&pass=a706486a&return=json&ip=&gt='+gt+'&challenge='+challenge+'&model=1').json()
print(second)
# 极验返回结果就是这个validate
validate = second['validate']
headers = {
'Host': 'gsxt.gzgs.gov.cn',
'Origin': 'http://gsxt.gzgs.gov.cn',
'Referer': 'http://gsxt.gzgs.gov.cn/index.jspx',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36'

}
# 下面找到一个接口,这个接口使用validate作为参数
# 将validate和challenge按照格式写入data中
data = {
'searchText': '中国',
'geetest_challenge': challenge,
'geetest_validate': validate,
'geetest_seccode': validate+'|jordan'
}
# 参数拼好就开始模拟请求
third = s.post('http://gsxt.gzgs.gov.cn/validateSecond.jspx',data=data,headers=headers).json()
# 获取请求成功的数据里的obj,obj是部分链接,需要补全
urls = 'http://gsxt.gzgs.gov.cn/'+third['obj']
print(urls)last = s.get(urls+'&searchType=1&entName=中国').textprint(last)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!