Python爬蟲(chóng)requests模塊之URL地址中的參數(shù)解讀
URL 地址參數(shù)
在使用requests模塊發(fā)送請(qǐng)求之前,我們就要回顧之前學(xué)習(xí)到的url(統(tǒng)一資源定位符)。
在你拿到數(shù)據(jù)所在的url地址之后,發(fā)送網(wǎng)絡(luò)請(qǐng)求時(shí),請(qǐng)求的url中包含兩種地址參數(shù):查詢參數(shù)和請(qǐng)求參數(shù)。
當(dāng)我們爬一些特殊網(wǎng)址時(shí),請(qǐng)求的url中會(huì)有一些特殊的參數(shù),例如以下站點(diǎn):
這種是URL的查詢參數(shù)。前面是網(wǎng)址,?后面的二值性數(shù)據(jù),就是查詢參數(shù)。
URL的查詢字符串(query string)傳遞某種數(shù)據(jù)。
如果你是手工構(gòu)建URL,也就是通過(guò)拼接字符串構(gòu)造的URL。
那么數(shù)據(jù)會(huì)以鍵/值對(duì)的形式置于URL中,跟在一個(gè)問(wèn)號(hào)的后面。
例如:
https://image.so.com/i?q=%E9%A3%8E%E6%99%AF&src=srp
params關(guān)鍵字參數(shù)
Requests 允許你使用params關(guān)鍵字參數(shù),以一個(gè)字典來(lái)提供這些參數(shù)。
舉例來(lái)說(shuō),如果你想傳遞key1=value1和key2=value2到 httpbin.org/get,那么你可以使用如下代碼:
import request params = {'q' : '風(fēng)景' , 'src' : 'srp'} response = requests.get("https: //image.so.com/i",params=params)
通過(guò)打印輸出該URL,你能看到URL已被正確編碼:
print(response.url)
# 打印結(jié)果
https : / /image.so.com/i?q=%E9%A3%8E%E6%99%AF&src=srp
注意
在url地址中默認(rèn)是不支持中文字符的,所以在請(qǐng)求中會(huì)把中文字符轉(zhuǎn)化成url編碼形式
同樣的查詢參數(shù)可以在瀏覽器抓包工具中找到,位于Headers欄目下的Query String Parameters中,如下圖所示:
請(qǐng)求參數(shù)
請(qǐng)求參數(shù)和查詢參數(shù)有本質(zhì)的區(qū)別。
請(qǐng)求參數(shù)一般是在發(fā)送post請(qǐng)求,向服務(wù)器提交表單數(shù)據(jù)請(qǐng)求的時(shí)候攜帶的參數(shù)。
注意: url地址中不會(huì)顯示請(qǐng)求參數(shù),只會(huì)顯示查詢參數(shù)。 請(qǐng)求參數(shù)在瀏覽器抓包工具中,位于Headers欄目下的Form Data中如下面數(shù)據(jù)抓包所示:
data關(guān)鍵字參數(shù)
在requests模塊中發(fā)送POST請(qǐng)求也是比較容易的操作,要實(shí)現(xiàn)這個(gè),只需簡(jiǎn)單地傳遞一個(gè)字典給data參數(shù)。
你的數(shù)據(jù)字典在發(fā)出請(qǐng)求時(shí)會(huì)自動(dòng)編碼為表單形式:
data = {'key1' : 'value1','key2 ' : 'value2 '} response = requests.post("http://httpbin.org/post",data=data)
當(dāng)然Requests中的post方法只是相對(duì)于get方法多了一個(gè)data參數(shù),其他參數(shù)都是類似的,例如我們也可以為post中的網(wǎng)址添加查詢字符串params參數(shù),也可以像get方法一樣添加headers參數(shù)等。
到此這篇關(guān)于Python爬蟲(chóng)requests模塊之URL地址中的參數(shù)解讀的文章就介紹到這了,更多相關(guān)Python的requests模塊URL地址參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python數(shù)據(jù)分析之?Pandas?Dataframe應(yīng)用自定義
這篇文章主要介紹了Python數(shù)據(jù)分析之?Pandas?Dataframe應(yīng)用自定義,文章基于python的相關(guān)資料展開(kāi)?Pandas?Dataframe應(yīng)用自定義的詳細(xì)內(nèi)容,需要的小伙伴可以參考一下2022-05-05Python基于DB-API操作MySQL數(shù)據(jù)庫(kù)過(guò)程解析
這篇文章主要介紹了Python基于DB-API操作MySQL數(shù)據(jù)庫(kù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實(shí)例講解
今天小編就為大家分享一篇讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06python基礎(chǔ)之Numpy庫(kù)中array用法總結(jié)
NumPy(Numerical Python的縮寫(xiě))是一個(gè)開(kāi)源的Python科學(xué)計(jì)算庫(kù),使用NumPy就可以很自然地使用數(shù)組和矩陣,這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)之Numpy庫(kù)中array用法的相關(guān)資料,需要的朋友可以參考下2021-08-08解決Windows下python和pip命令無(wú)法使用的問(wèn)題
這篇文章主要介紹了解決Windows下python和pip命令無(wú)法使用的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08pygame用blit()實(shí)現(xiàn)動(dòng)畫(huà)效果的示例代碼
這篇文章主要介紹了pygame用blit()實(shí)現(xiàn)動(dòng)畫(huà)效果的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05在keras 中獲取張量 tensor 的維度大小實(shí)例
這篇文章主要介紹了在keras 中獲取張量 tensor 的維度大小實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Django drf使用Django自帶的用戶系統(tǒng)的注冊(cè)功能
本文主要介紹了Django drf使用Django自帶的用戶系統(tǒng)的注冊(cè)功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02