小編給大家分享一下用Python中request如何實(shí)現(xiàn)自動(dòng)簽到,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!
湞江網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),湞江網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為湞江上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的湞江做網(wǎng)站的公司定做!
使用selenium實(shí)現(xiàn)自動(dòng)簽到確實(shí)是一個(gè)方便快捷的方式,但不可否認(rèn)的是這種方式確實(shí)有一個(gè)硬傷,就是太慢了,模擬瀏覽器進(jìn)行加載、點(diǎn)擊操作,即使用上顯性等待這種高端操作也最多只能把整個(gè)運(yùn)行過(guò)程優(yōu)化到5秒以內(nèi)。
作為一個(gè)有性能潔癖的程序猿,5秒顯然是我不能接受的。那還有什么方式比它更快呢,很簡(jiǎn)單,直接發(fā)post請(qǐng)求啊,直接對(duì)網(wǎng)站發(fā)起post或get請(qǐng)求永遠(yuǎn)是最快的方式,網(wǎng)上流傳的各種秒殺腳本用的也是這種方式。
requests庫(kù)的使用
本來(lái)之前用scrapy做了一個(gè)版本,結(jié)果發(fā)現(xiàn)為了實(shí)現(xiàn)這么個(gè)小功能用scrapy太過(guò)笨重,代碼量還多,干脆換成requests。
requests庫(kù)的使用方法非常簡(jiǎn)單,網(wǎng)上有對(duì)應(yīng)的中文文檔可以參考requests文檔。
直接上代碼
response = requests.get("http://www.baidu.com") print(response.text)
post請(qǐng)求則是要先實(shí)例化一個(gè)session對(duì)象,用session對(duì)象進(jìn)行后續(xù)的post請(qǐng)求和其他操作,session對(duì)象會(huì)為你保存你的登錄狀態(tài),包括cookie等內(nèi)容。
form_data1 = {"mobile": "xxxx", "mobileErr": "", "password": "xxxx", "passwordErr": "", "uuid": "0", "mid": "0"} s = requests.Session() response = s.post(login_url, data=form_data) # print(response.text)
當(dāng)session攜帶了登錄信息之后就可以進(jìn)行后續(xù)的簽到操作,而簽到操作也很簡(jiǎn)單,直接用gei請(qǐng)求訪問(wèn)一下簽到按鈕對(duì)應(yīng)的鏈接即可。
當(dāng)然無(wú)論是獲取簽到按鈕的鏈接還是獲取登錄所需要的的form表單數(shù)據(jù)都離不開(kāi)抓包。
我用的抓包軟件是Fiddler,抓包這里我就不詳細(xì)講了,網(wǎng)上可以搜到很多教程。
最后把完整代碼放一下。
import requests import sys import traceback login_url = "https://gf2.wmbuluo.com/addons/yun_shop/api.php?i=2&uuid=0&mid=0&type=5&shop_id=null&route=member.login.index" target_url = 'https://gf2.wmbuluo.com/addons/yun_shop/api.php?i=2&uuid=0&mid=0&type=5&shop_id=null&route=plugin.sign.Frontend.Modules.Sign.Controllers.sign.sign' form_data1 = {"mobile": "xxxx", "mobileErr": "", "password": "xxxx", "passwordErr": "", "uuid": "0", "mid": "0"} def run(form_data): s = requests.Session() response = s.post(login_url, data=form_data) # print(response.text) # print(response.status_code) if response.status_code == 200: resp = s.get(target_url) print(resp.status_code) def main(): run(form_data1) print("run1") if __name__ == '__main__': try: sys.exit(main()) except Exception as e: traceback.print_exc()
看完了這篇文章,相信你對(duì)用Python中request如何實(shí)現(xiàn)自動(dòng)簽到有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站題目:用Python中request如何實(shí)現(xiàn)自動(dòng)簽到
網(wǎng)頁(yè)網(wǎng)址:http://muchs.cn/article28/jpiecp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、外貿(mào)建站、網(wǎng)站策劃、靜態(tài)網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)