http://www.ddocr.com/user/index.html
平台滴滴打码,比较隐蔽难找
接口文档
https://www.kancloud.cn/jaciyu/http_api/886490
下面是一个爬取国家企业信息公示系统(贵州)的例子
# 使用如下语句,可以用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+'&challenge='+challenge+'&model=1').json()
second = s.get('http://api.ddocr.com/api/gateway.jsonp?wtype=geetest&secretkey=e0988fa158cd4ddaa40f5b28e521e719>='+gt+'&referer=http://gsxt.gzgs.gov.cn/index.jspx&challenge='+challenge).json()
print(second)
print(11111,second) # 极验返回结果就是这个validate validate = second['data']['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=中国').text print(last)