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