當(dāng)前位置:
首頁(yè) >
urllib库添加headers的一般方法
發(fā)布時(shí)間:2025/3/20
29
豆豆
生活随笔
收集整理的這篇文章主要介紹了
urllib库添加headers的一般方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
對(duì)于請(qǐng)求一些網(wǎng)站,我們需要加上請(qǐng)求頭才可以完成網(wǎng)頁(yè)的抓取,不然會(huì)得到一些錯(cuò)誤,無(wú)法返回抓取的網(wǎng)頁(yè)。下面,介紹兩種添加請(qǐng)求頭的方法。
方法一:借助build_opener和addheaders完成
import urllib.request url="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要寫為一個(gè)元組類型才可以。寫為字典類型的話會(huì)報(bào)錯(cuò)!
方法二、創(chuàng)建一個(gè)Request實(shí)例對(duì)象
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' # 案例1 import urllib.request url="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ò)誤的話,加上“ignore”就可以啦 print(file.read().decode("utf-8",'ignore'))注意:此處的headers要寫為一個(gè)字典類型才可以。
創(chuàng)建一個(gè)Reques對(duì)象,把需要的headers,url,proxy 都放進(jìn)去,或者在post 請(qǐng)求中還可以把編碼過后的data 值放進(jìn)去,再用urlopen 打開,就比較方便了。
另外,這種方法還可以用add_headers()來(lái)添加headers,代碼如下:
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' import urllib.request try: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é):
通過以上兩種方法,可以完成請(qǐng)求頭的相關(guān)參數(shù)設(shè)置,但是得注意headers是用字典類型來(lái)傳入還是元組類型。
總結(jié)
以上是生活随笔為你收集整理的urllib库添加headers的一般方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中数组的del,remove
- 下一篇: 关于selenium的8种元素定位