首頁常見問題正文

怎樣給瀏覽器發(fā)送GET請求?

更新時間:2023-09-06 來源:黑馬程序員 瀏覽量:

當(dāng)用戶在瀏覽器的地址欄中直接輸入某個URL地址或者單擊網(wǎng)頁上的某個超鏈接時,瀏覽器會使用GET方法向服務(wù)器發(fā)送請求。例如,在瀏覽器的地址欄中分別輸入https://www.baidu.com/和 https://www.baidu.com/s?wd=python.按Enter鍵后打開百度首頁和python關(guān)鍵詞的查詢結(jié)果頁面。此時我們用Fiddler工具捕獲剛剛發(fā)送的兩個請求,可以看到這兩個請求的請求方法都是GET。

在Requests庫中,getO函數(shù)用于向服務(wù)器發(fā)送GET請求。該函數(shù)會根據(jù)傳人的URL構(gòu)建一個請求(每個請求都是Request類的對象),之后將該請求發(fā)送給服務(wù)器。getO函數(shù)的聲明如下:

get(url,params=None,headers=None,cookies=None,verify=True,
    proxies=None, timeout=None,**kwargs)

上述函數(shù)中各參數(shù)的含義如下。

url:必選參數(shù),表示請求的URL。

params:可選參數(shù),表示請求的查詢字符串。該參數(shù)支持3種類型的取值,分別為字典、元組列表、字節(jié)序列。當(dāng)該參數(shù)的值是一個字典時,字典的鍵為url參數(shù),字典的值為url參數(shù)對應(yīng)的值,例如{“ie":"utf-8","wd":"python"}。

headers:可選參數(shù),表示請求的請求頭,該參數(shù)只支持字典類型的值。

cookies:可選參數(shù),表示請求的Cookie信息,該參數(shù)支持字典或CookieJar類的對象。

verify:可選參數(shù),表示是否啟用SSL證書,默認值為True。

proxies:可選參數(shù),用于設(shè)置代理服務(wù)器,該參數(shù)只支持字典類型的值。

timeout:可選參數(shù),表示請求網(wǎng)頁時設(shè)定的超時時長,以秒為單位。

下面分別以訪問百度首頁和python關(guān)鍵詞的查詢結(jié)果頁面為例,演示如何使用get()函數(shù)發(fā)送不攜帶url參數(shù)和攜帶url參數(shù)的GET請求。

1.不攜帶url參數(shù)的GET請求

若GET請求的URL中不攜帶參數(shù),我們在調(diào)用getO函數(shù)發(fā)送GET請求時只需要給url參數(shù)傳入指定的URL即可。例如,使用getO函數(shù)發(fā)送GET請求訪問百度首頁,具體代碼如下。

import requests
# 準(zhǔn)備URL
base_url = 'https://www.baidu.com/'
# 根據(jù)URL構(gòu)造請求,發(fā)送GET請求,接收服務(wù)器返回的響應(yīng)信息
response = requests.get(url=base_url)
# 查看響應(yīng)碼
print (response.status_code)

上述代碼中,首先定義了一個代表請求URL地址的變量base_url,然后調(diào)用requests庫中的getO函數(shù)發(fā)送GET請求。當(dāng)百度服務(wù)器接收到請求后會返回響應(yīng)信息,并將響應(yīng)信息保存到response中。最后通過訪問response的status_code屬性查看響應(yīng)狀態(tài)碼,以確認此次訪問是否成功。

運行代碼,輸出如下結(jié)果。

200

從輸出的結(jié)果可以看出,服務(wù)器返回的響應(yīng)狀態(tài)碼為200,說明成功訪問了百度首頁。

2.攜帶url參數(shù)的GET請求

如果GET請求的URL中攜帶參數(shù),那么我們在調(diào)用getO函數(shù)時可以采用兩種方式發(fā)送GET請求。第l種方式是將參數(shù)以“?參數(shù)名l=值1&參數(shù)名2=值2.”的形式拼接到URL后面,進而手動構(gòu)建完整的URL,例如https://www.baidu.com/s?wd=python,并將完整的URL傳入 url參數(shù);第2種方式是將url參數(shù)轉(zhuǎn)換為字典,之后將該字典傳入params參數(shù)。

第1種方式的實現(xiàn)代碼如下。

import requests
base_url ='https://www.baidu.com/s'
param = 'wd=python'
#拼接完整的URL
full_url = base_url +'?'+ param
#根據(jù)URL構(gòu)造請求,發(fā)送GET請求,接收服務(wù)器返回的響應(yīng)信息
response = requests.get(full_url)
#查看響應(yīng)碼
print (response.status_code)

運行代碼,輸出如下結(jié)果。

200

通過觀察兩次的輸出結(jié)果可知,服務(wù)器返回的響應(yīng)狀態(tài)碼都為200。這說明我們成功訪問了python關(guān)鍵詞的查詢結(jié)果頁面。


分享到:
在線咨詢 我要報名
和我們在線交談!