Python urllib庫(kù)如何添加headers過(guò)程解析
對(duì)于請(qǐng)求一些網(wǎng)站,我們需要加上請(qǐng)求頭才可以完成網(wǎng)頁(yè)的抓取,不然會(huì)得到一些錯(cuò)誤,無(wú)法返回抓取的網(wǎng)頁(yè)。下面,介紹兩種添加請(qǐng)求頭的方法。
方法一:借助build_opener和addheaders完成
import urllib.requesturl='http://www.meizitu.com'#注意:在urllib 中headers是元組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')opener=urllib.request.build_opener()opener.addheaders=[headers]data=opener.open(url)print(data.read())
注意:此處的headers要寫(xiě)為一個(gè)元組類(lèi)型才可以。寫(xiě)為字典類(lèi)型的話(huà)會(huì)報(bào)錯(cuò)!
方法二、創(chuàng)建一個(gè)Request實(shí)例對(duì)象
# 案例1import urllib.requesturl='http://www.meizitu.com'#注意:在urllib 中這種的headers 是需要是字典的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'}req=urllib.request.Request(url=url,headers=headers)file=urllib.request.urlopen(req)#出現(xiàn)有些解碼錯(cuò)誤的話(huà),加上“ignore”就可以啦print(file.read().decode('utf-8',’ignore’))
注意:此處的headers要寫(xiě)為一個(gè)字典類(lèi)型才可以。
創(chuàng)建一個(gè)Reques對(duì)象,把需要的headers,url,proxy 都放進(jìn)去,或者在post 請(qǐng)求中還可以把編碼過(guò)后的data 值放進(jìn)去,再用urlopen 打開(kāi),就比較方便了。
另外,這種方法還可以用add_headers()來(lái)添加headers,代碼如下:
import urllib.requesttry: url='http://www.meizitu.com' req=urllib.request.Request(url=url) req.add_header('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') file=urllib.request.urlopen(req,timeout=10.1) print(file.read().decode('utf-8',’ignore’))except Exception as e: print('時(shí)間超時(shí)',str(e))
總結(jié):通過(guò)以上兩種方法,可以完成請(qǐng)求頭的相關(guān)參數(shù)設(shè)置,但是得注意headers是用字典類(lèi)型來(lái)傳入還是元組類(lèi)型。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. .NET 中配置從xml轉(zhuǎn)向json方法示例詳解2. ASP錯(cuò)誤捕獲的幾種常規(guī)處理方式3. 詳解php如何合并身份證正反面圖片為一張圖片4. Laravel中數(shù)據(jù)庫(kù)遷移操作的示例詳解5. 用Python遠(yuǎn)程登陸服務(wù)器的步驟6. npm下載慢或下載失敗問(wèn)題解決的三種方法7. python 用遞歸實(shí)現(xiàn)通用爬蟲(chóng)解析器8. 使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁(yè)的方法9. ASP編碼必備的8條原則10. python基于opencv批量生成驗(yàn)證碼的示例
