Python3中urllib庫(kù)添加請(qǐng)求頭的兩種方式
Python3中urllib庫(kù)添加請(qǐng)求頭的兩種方式
導(dǎo)入模塊
import urllib.request
方法一:build_opener類(lèi)
link = 'https://movie.douban.com/top250' # 在這里,必須使用元組或列表的方式定制請(qǐng)求頭。 headers = ('user-agent','mozilla/5.0') opener = urllib.request.build_opener() # 請(qǐng)求頭會(huì)以列表包含元組或列表的方式進(jìn)行保存。 opener.addheaders = [headers] r = opener.open(link,timeout=10) # 打印請(qǐng)求狀態(tài)碼,這里返回200,表示請(qǐng)求成功。 print(r.code)
方式二:Request與urlopen類(lèi)
link = 'https://movie.douban.com/top250' headers = {'user-agent':'mozilla/5.0'} ''' 使用Request類(lèi)添加請(qǐng)求頭可以不使用headers這個(gè)參數(shù)。而使用這個(gè)類(lèi)的實(shí)例化對(duì)象的方法 add_header(key='user-agent',val='mozilla/5.0') ''' add = urllib.request.Request(url=link,headers=headers) r = urllib.request.urlopen(url=add,timeout=10) print(r.code)
在方式二中,urllib庫(kù)中Request與urlopen兩個(gè)請(qǐng)求類(lèi)一起使用的主要原因:
- Request可以添加請(qǐng)求頭,而urlopen不能。
- urlopen可以對(duì)響應(yīng)對(duì)象進(jìn)行狀態(tài)碼的訪問(wèn)、網(wǎng)頁(yè)代碼的讀取等一系列操作。
- 它們?cè)趨?shù)上具有一定的區(qū)別。
補(bǔ)充:
python 3的urllib庫(kù)介紹
Python 3中的urllib模塊可以用來(lái)處理URL,包括下載和上傳文件、創(chuàng)建和讀取cookie、訪問(wèn)Web API等。在本文中,我們將詳細(xì)介紹urllib庫(kù)中最常用的四個(gè)模塊:urllib.request、urllib.parse、urllib.error和urllib.robotparser。
一、urllib.request模塊
該模塊提供了許多功能,如打開(kāi)URL、讀取其中的響應(yīng),以及設(shè)置請(qǐng)求頭等。
打開(kāi)URL 有兩種方法打開(kāi)URL,分別是使用urllib.request.urlopen()和 urllib.request.Request()。
1.1 使用urllib.request.urlopen()
可以使用urlopen()函數(shù)打開(kāi)一個(gè)URL,如果給定了字符串參數(shù),將嘗試打開(kāi)這個(gè)URL,并且返回一個(gè) file-like 對(duì)象,在此對(duì)象上可以執(zhí)行類(lèi)似文件的操作。例如:
python import urllib.request response = urllib.request.urlopen(‘https://www.example.com/') print(response.read().decode(‘utf-8'))
此代碼將在控制臺(tái)輸出從示例站點(diǎn)獲取的HTML內(nèi)容。
1.2 使用urllib.request.Request()
假設(shè)需要傳遞一些參數(shù)、HTTP頭等信息,則可以使用Request()方法構(gòu)造一個(gè)請(qǐng)求對(duì)象,然后再調(diào)用urlopen()發(fā)送請(qǐng)求。例如:
python import urllib.request req = urllib.request.Request(‘http://www.example.com/', data=b'some_data', headers={‘User-Agent': ‘Mozilla/5.0'}) response = urllib.request.urlopen(req) print(response.read().decode(‘utf-8'))
這里創(chuàng)建了一個(gè)請(qǐng)求對(duì)象,其中包含URL、數(shù)據(jù)(可[Cannot read property ‘status’ of undefined]
到此這篇關(guān)于Python3中urllib庫(kù)的兩種添加請(qǐng)求頭的方式的文章就介紹到這了,更多相關(guān)Python3 urllib庫(kù)添加請(qǐng)求頭內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
numpy中實(shí)現(xiàn)ndarray數(shù)組返回符合特定條件的索引方法
下面小編就為大家分享一篇numpy中實(shí)現(xiàn)ndarray數(shù)組返回符合特定條件的索引方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python利用pdfplumber提取PDF文檔中的表格數(shù)據(jù)并導(dǎo)出
pdfplumber是一個(gè)功能強(qiáng)大的Python庫(kù),可以用于解析PDF文檔并提取其中的文本、表格和圖像等內(nèi)容,下面我們就來(lái)學(xué)習(xí)一下如何使用pdfplumber提取PDF表格數(shù)據(jù)吧2023-12-12詳解DBSCAN算法原理及其Python實(shí)現(xiàn)
DBSCAN,即Density-Based Spatial Clustering of Applications with Noise,基于密度的噪聲應(yīng)用空間聚類(lèi),本文將詳細(xì)介紹DBSCAN算法的原理及其Python實(shí)現(xiàn),需要的可以參考下2023-12-12Pandas中df.loc[]與df.iloc[]的用法與異同?
本文主要介紹了Pandas中df.loc[]與df.iloc[]的用法與異同,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧?2022-07-07基于Python數(shù)據(jù)結(jié)構(gòu)之遞歸與回溯搜索
今天小編就為大家分享一篇基于Python數(shù)據(jù)結(jié)構(gòu)之遞歸與回溯搜索,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02python3基于OpenCV實(shí)現(xiàn)證件照背景替換
這篇文章主要為大家詳細(xì)介紹了python3基于OpenCV實(shí)現(xiàn)證件照背景替換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Python實(shí)現(xiàn)將PowerPoint轉(zhuǎn)為HTML格式
有時(shí)我們需要將精心設(shè)計(jì)的PPT發(fā)布到網(wǎng)絡(luò)上以便于更廣泛的訪問(wèn)和分享,本文將介紹如何使用Python將PowerPoint轉(zhuǎn)換為HTML格式,需要的可以參考下2024-04-04