您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)python爬蟲中使用cookie可能出現(xiàn)的錯誤,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
以訪問百度為例:
import requests conn = requests.session() resp = conn.get('https://www.baidu.com/s?wd=findspace') # 打印請求的頭 print(resp.request.headers) # 打印結(jié)果如下,requests已經(jīng)自動填充了部分數(shù)據(jù) {'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.4.3 CPython/3.4.2 Linux/3.16.0-4-amd64', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate'} # 再訪問一次: resp = conn.get('https://www.baidu.com/s?wd=findspace') print(resp.request.headers) {'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.4.3 CPython/3.4.2 Linux/3.16.0-4-amd64', 'Accept': '*/*', 'Cookie': 'BD_NOT_HTTPS=1; BDSVRTM=3; PSTM=1458389621; BIDUPSID=9CB03BE7D7F436EC2EE23C6E6EBE8EBD', 'Accept-Encoding': 'gzip, deflate'}
可以看到請求中已經(jīng)自動加上了cookie,但是也可以看到,user-agent是'python-requests/2.4.3 CPython/3.4.2 Linux/3.16.0-4-amd64',可以通過設(shè)置headers的方法來設(shè)置
headers = { "method": "POST", "scheme": "https", "version": "HTTP/1.1", "accept": "*/*", "accept-encoding": "gzip, deflate", "accept-language": "en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4", "content-type": "application/x-www-form-urlencoded;charset=UTF-8", "dnt": "1", "faces-request": "partial/ajax", "origin": "https://www.baidu.com", "referer": "https://www.baidu.com", } resp = conn.get(url, headers=headersm timeout=60)
注意此時的頭會和requests填充的頭相互補充,但是用戶自定義的頭具有高優(yōu)先級。比如,你在headers里填充cookies為自己的數(shù)據(jù),則在本次請求中會覆蓋requests之前給你保存的cookies。 也就不用像前文一樣去手動保存cookie了。
關(guān)于python爬蟲中使用cookie可能出現(xiàn)的錯誤就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。