python編程之requests在網(wǎng)絡(luò)請求中添加cookies參數(shù)方法詳解
哎,好久沒有學(xué)習(xí)爬蟲了,現(xiàn)在想要重新拾起來。發(fā)現(xiàn)之前學(xué)習(xí)爬蟲有些粗糙,竟然連requests中添加cookies都沒有掌握,慚愧。廢話不宜多,直接上內(nèi)容。
我們平時使用requests獲取網(wǎng)絡(luò)內(nèi)容很簡單,幾行代碼搞定了,例如:
import requests res=requests.get("https://cloud.flyme.cn/browser/index.jsp") print res.content
你沒有看錯,真的只有三行代碼。但是簡單歸簡單,問題還是不少的。
首先,這里的請求只是get方法,并且沒有解決cookies的問題。
然后就是這里并沒有解決亂碼的問題。(亂碼是python中的變態(tài)點)其實,在requests的get方法中添加cookies的方法不難 可以這樣子:
res=requests.get("https://cloud.flyme.cn/browser/index.jsp",cookies=cookies)
我們所面臨的問題是,如何構(gòu)造這里的cookies。
這里的cookies是一個字典格式的數(shù)據(jù)。
平時我們?yōu)g覽網(wǎng)頁的時候,在審查元素中可以查看到所訪問網(wǎng)頁的cookies內(nèi)容,大都是這樣子的:
sn_openNetBySms=%23810EBMA3TE53; sn_map=810EBMA3TE53; DSESSIONID=f1987887-3d1d-4a85-ad75-c6270e588290; JSESSIONID=; _uid=; _keyLogin=; _rmtk=; _uticket=ns_0393027c2f9f686e3499e8ebb8d1d622; _ckk=ns_397a592791064029bf1336eff1cf516e; ucuid=8a135520affa423584307f6e2c210f02; _domain=cloud.flyme.cn; _islogin=true; lang=zh_CN; JSESSIONID=1gmfzynp0ns6s1u6a92xkqgi6q
天那,這是人看的嗎?不是。這是經(jīng)過加密處理后的數(shù)據(jù)。同樣,我們可以將加密后的數(shù)據(jù)傳遞到get方法的cookies參數(shù)中,服務(wù)器會自動將加密后的數(shù)據(jù)進行解密,再檢查數(shù)據(jù)的正確性。
至于,如何查看所訪問網(wǎng)頁的cookies內(nèi)容,可以使用瀏覽器的審查功能,F(xiàn)12或者右擊審查(Chrome)打開。在network中查看鏈接的Headers內(nèi)容。另外,也可以使用軟件抓包查看,如Fiddler web Debugger。
這里假設(shè)獲取到了cookies的內(nèi)容,我們可以保存到本地TXT文件中(直接把cookies的內(nèi)容粘貼進去即可),例如test.txt文件。
然后,
f=open(r'test.txt','r')#打開所保存的cookies內(nèi)容文件 cookies={}#初始化cookies字典變量 for line in f.read().split(';'): #按照字符:進行劃分讀取 #其設(shè)置為1就會把字符串拆分成2份 name,value=line.strip().split('=',1) cookies[name]=value #為字典cookies添加內(nèi)容
這時候我們將cookies添加到get方法中:
res=requests.get("https://cloud.flyme.cn/browser/index.jsp",cookies=cookies)
這時候獲取到的res.content中就是我們將cookies信息添加到get中后訪問網(wǎng)頁所獲取的內(nèi)容。
總結(jié)
以上就是本文關(guān)于python編程之requests在網(wǎng)絡(luò)請求中添加cookies參數(shù)方法詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:python正則表達式re之compile函數(shù)解析、Python_LDA實現(xiàn)方法詳解、Python探索之修改Python搜索路徑等,如有不足之處,歡迎留言討論。感謝朋友們對本站的支持!
相關(guān)文章
在Python中append以及extend返回None的例子
今天小編就為大家分享一篇在Python中append以及extend返回None的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python使用psutil對系統(tǒng)數(shù)據(jù)進行采集監(jiān)控
psutil庫可以實時獲取系統(tǒng)的一些信息,這樣就可以達到實時監(jiān)控系統(tǒng)的目的。本文對詳細講解了ython使用psutil對系統(tǒng)數(shù)據(jù)進行采集監(jiān)控,感興趣的朋友可以看一看2021-08-08Python實現(xiàn)的飛速中文網(wǎng)小說下載腳本
這篇文章主要介紹了Python實現(xiàn)的飛速中文網(wǎng)小說下載腳本,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-04-04