滑塊驗證碼打碼



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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM