Pytho爬蟲中Requests設(shè)置請(qǐng)求頭Headers的方法
1、為什么要設(shè)置headers?
在請(qǐng)求網(wǎng)頁(yè)爬取的時(shí)候,輸出的text信息中會(huì)出現(xiàn)抱歉,無法訪問等字眼,這就是禁止爬取,需要通過反爬機(jī)制去解決這個(gè)問題。
headers是解決requests請(qǐng)求反爬的方法之一,相當(dāng)于我們進(jìn)去這個(gè)網(wǎng)頁(yè)的服務(wù)器本身,假裝自己本身在爬取數(shù)據(jù)。
對(duì)反爬蟲網(wǎng)頁(yè),可以設(shè)置一些headers信息,模擬成瀏覽器取訪問網(wǎng)站 。
2、 headers在哪里找?
谷歌或者火狐瀏覽器,在網(wǎng)頁(yè)面上點(diǎn)擊:右鍵–>檢查–>剩余按照?qǐng)D中顯示操作,需要按Fn+F5刷新出網(wǎng)頁(yè)來
有的瀏覽器是點(diǎn)擊:右鍵->查看元素,刷新
注意:headers中有很多內(nèi)容,主要常用的就是user-agent 和 host,他們是以鍵對(duì)的形式展現(xiàn)出來,如果user-agent 以字典鍵對(duì)形式作為headers的內(nèi)容,就可以反爬成功,就不需要其他鍵對(duì);否則,需要加入headers下的更多鍵對(duì)形式。
用Python下載一個(gè)網(wǎng)頁(yè)保存為本地的HTML文件實(shí)例1-中文網(wǎng)頁(yè)
import requests # 中文網(wǎng)頁(yè):https://baike.so.com/doc/24386561-25208408.html url1='https://baike.so.com/doc/24386561-25208408.html' #添加請(qǐng)求頭 headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE' } response_1=requests.get(url1, headers=headers) response_1.encoding='utf-8' #第一種: # with open('steve_jobs2.html','w',encoding='utf-8') as f1: # f1.write(response_1.text) #第二種: f1=open('steve_jobs2.html','w',encoding='utf-8') f1.write(response_1.text) c=response_1.text print(c)
用Python下載一個(gè)網(wǎng)頁(yè)保存為本地的HTML文件實(shí)例2-英文網(wǎng)頁(yè)
import requests import re # 英文網(wǎng)頁(yè):https://en.wikipedia.org/wiki/Steve_Jobs url2='https://en.wikipedia.org/wiki/Steve_Jobs' response_2=requests.get(url2) # 源碼都是Utf-8編碼 response_2.encoding='utf-8' #第一種: # with open('steve_jobs3.html','w',encoding='utf-8') as f2: # f2.write(response_2.text) #第二種: f2=open('steve_jobs3.html','w',encoding='utf-8') f2.write(response_2.text) c=response_2.text print(c)
到此這篇關(guān)于Pytho爬蟲中Requests設(shè)置請(qǐng)求頭Headers的方法的文章就介紹到這了,更多相關(guān)Pytho Requests設(shè)置請(qǐng)求頭Headers內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)購(gòu)物車購(gòu)物小程序
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)購(gòu)物車購(gòu)物小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04Python判斷一個(gè)數(shù)是否為質(zhì)數(shù)的3種方法(超詳細(xì))
一個(gè)大于1的自然數(shù),除了1和它本身外,不能被其他自然數(shù)(質(zhì)數(shù))整除(2, 3, 5, 7等),換句話說就是該數(shù)除了1和它本身以外不再有其他的因數(shù),下面這篇文章主要給大家介紹了關(guān)于利用Python判斷一個(gè)數(shù)是否為質(zhì)數(shù)的3種方法,需要的朋友可以參考下2024-09-09Python數(shù)據(jù)庫(kù)格式化輸出文檔的思路與方法
這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)庫(kù)格式化輸出文檔的思路與方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03詳解pyenv下使用python matplotlib模塊的問題解決
這篇文章主要介紹了詳解pyenv下使用python matplotlib模塊的問題解決,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-11-11Python解決MySQL數(shù)據(jù)處理從SQL批量刪除報(bào)錯(cuò)
這篇文章主要為大家介紹了Python解決MySQL數(shù)據(jù)處理從SQL批量刪除報(bào)錯(cuò),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12