??個人主頁:為夢而生~ 關(guān)注我一起學(xué)習(xí)吧!
??專欄:python網(wǎng)絡(luò)爬蟲從基礎(chǔ)到實戰(zhàn) 歡迎訂閱!后面的內(nèi)容會越來越有意思~
??往期推薦:
??前面比較重要的基礎(chǔ)內(nèi)容:
【Python爬蟲開發(fā)基礎(chǔ)⑥】計算機網(wǎng)絡(luò)基礎(chǔ)(Web和HTTP)
【Python爬蟲開發(fā)基礎(chǔ)⑦】urllib庫的基本使用
【Python爬蟲開發(fā)基礎(chǔ)⑧】XPath庫及其基本用法
【Python爬蟲開發(fā)基礎(chǔ)⑨】jsonpath和BeautifulSoup庫概述及其對比
【Python爬蟲開發(fā)基礎(chǔ)⑩】selenium概述
??爬蟲的實戰(zhàn)文章:
【Python爬蟲開發(fā)實戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片
【Python爬蟲開發(fā)實戰(zhàn)②】使用urllib以及jsonpath爬取即將上映電影信息
大家可以復(fù)制代碼感受一下爬蟲的魅力~
??本期內(nèi)容:本期我們要講一個爬蟲常用的庫:requests,它的功能能夠完全覆蓋urllib,并且要比urllib簡單易操作,下面我們馬上開始吧!
1 requests庫簡介
requests 是一個用于發(fā)送 HTTP 請求的流行 Python 庫。它提供了簡潔而直觀的 API,使得與 Web 服務(wù)進行交互變得非常方便。requests 庫可以完成多種 HTTP 請求操作,如發(fā)送 GET、POST、PUT、DELETE 等請求,設(shè)置請求頭、處理響應(yīng)以及會話管理等功能。
下面是 requests 庫的一些主要特點和功能:
-
簡潔易用:requests 的 API 設(shè)計非常簡單易懂,上手容易,使用它可以輕松地發(fā)送 HTTP 請求、處理響應(yīng)等操作。
-
支持多種請求方式:requests 支持發(fā)送多種類型的 HTTP 請求,包括 GET、POST、PUT、DELETE 等,并且支持自定義請求頭、請求參數(shù)、請求體等。
-
會話管理:
requests.Session
類提供了會話管理功能,可以在多個請求之間保持會話狀態(tài),例如保持登錄狀態(tài)、傳遞 cookie 等。 -
強大的響應(yīng)處理能力:requests 可以方便地處理各種類型的響應(yīng)結(jié)果,包括文本、JSON、圖片、文件等,還支持響應(yīng)的編碼和解碼。
-
完善的錯誤處理機制:requests 對網(wǎng)絡(luò)請求中可能出現(xiàn)的異常情況進行了處理,如超時、連接錯誤等,同時提供了對 HTTP 錯誤狀態(tài)碼的處理功能。
與其他庫一樣,如需要安裝requests庫,使用一下命令即可
pip install requests
2 發(fā)送GET請求
使用 requests 庫發(fā)送 GET 請求非常簡單,只需要調(diào)用 requests.get()
方法,并傳入目標 URL 即可。
import requests
# 發(fā)送 GET 請求
url = 'https://api.example.com/users'
response = requests.get(url)
# 檢查響應(yīng)狀態(tài)碼
if response.status_code == 200:
# 獲取響應(yīng)內(nèi)容(文本格式)
content = response.text
print(f'Response content: {content}')
else:
print('Failed to retrieve data. Status code:', response.status_code)
在上述示例代碼中,我們使用了 requests.get() 方法來發(fā)送 GET 請求,并指定目標 URL 為 'https://api.example.com/users'
。接著,我們通過檢查 response
對象的 status_code
屬性來判斷請求是否成功(200 表示成功)。如果成功,我們可以通過 response.text
來獲取響應(yīng)內(nèi)容,并將其打印出來。如果請求失敗,則打印相應(yīng)的錯誤信息和狀態(tài)碼。
注意:在實際應(yīng)用中,可能需要更多的參數(shù)來發(fā)送 GET 請求,例如請求頭、請求參數(shù)等。requests
庫提供了豐富的選項來滿足不同場景的需求,可以根據(jù)具體情況進行相應(yīng)的設(shè)置。
3 發(fā)送POST請求
使用 requests 庫發(fā)送 POST 請求同樣非常簡單,需要調(diào)用 requests.post()
方法,并傳入目標 URL 和請求數(shù)據(jù)即可。
import requests
# 發(fā)送 POST 請求
url = 'https://api.example.com/users'
data = {'name': 'John', 'age': 25}
response = requests.post(url, data=data)
# 檢查響應(yīng)狀態(tài)碼
if response.status_code == 200:
# 獲取響應(yīng)內(nèi)容(文本格式)
content = response.text
print(f'Response content: {content}')
else:
print('Failed to submit data. Status code:', response.status_code)
在上述示例代碼中,我們使用了 requests.post()
方法來發(fā)送 POST 請求,并指定目標 URL 為 'https://api.example.com/users'
。其中,data 是一個字典,包含了需要發(fā)送給服務(wù)器的數(shù)據(jù)。
接下來,我們使用 response
對象的 status_code
屬性來檢查請求是否成功(200 表示成功)。如果成功,我們可以通過 response.text
來獲取響應(yīng)內(nèi)容,并將其打印出來。如果請求失敗,則打印相應(yīng)的錯誤信息和狀態(tài)碼。
4 參數(shù)傳遞
在使用 requests 庫發(fā)送請求時,你可以通過參數(shù)來傳遞額外的信息,例如請求頭、請求參數(shù)、認證憑據(jù)等。
- headers:用于設(shè)置請求頭,包含了請求的元數(shù)據(jù)信息,如 User-Agent、Content-Type 等。
- params:用于傳遞查詢字符串參數(shù),將參數(shù)附加到 URL 上。
- data:用于傳遞表單數(shù)據(jù)或請求體數(shù)據(jù),常用于 POST 請求。
- json:用于傳遞 JSON 數(shù)據(jù),常用于 POST 請求。
- auth:用于進行身份驗證,支持多種驗證方式,如基本身份驗證 (Basic Authentication)、摘要身份驗證 (Digest Authentication) 等。
示例代碼:
import requests
# 設(shè)置請求頭
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'https://api.example.com/users'
params = {'page': 1}
data = {'name': 'John', 'age': 25}
json_data = {'name': 'John', 'age': 25}
auth = ('username', 'password')
# 發(fā)送 GET 請求(帶請求頭和查詢字符串參數(shù))
response = requests.get(url, headers=headers, params=params)
# 發(fā)送 POST 請求(帶請求頭和表單數(shù)據(jù))
response = requests.post(url, headers=headers, data=data)
# 發(fā)送 POST 請求(帶請求頭和 JSON 數(shù)據(jù))
response = requests.post(url, headers=headers, json=json_data)
# 發(fā)送帶身份驗證的請求
response = requests.get(url, auth=auth)
在上述示例代碼中,我們使用了不同的參數(shù)來發(fā)送請求。通過傳遞 headers
參數(shù)可以設(shè)置請求頭,傳遞 params
參數(shù)可以將查詢字符串參數(shù)附加到 URL 上,傳遞 data
參數(shù)可以傳遞表單數(shù)據(jù)或請求體數(shù)據(jù),傳遞 json
參數(shù)可以傳遞 JSON 數(shù)據(jù),傳遞 auth
參數(shù)可以進行身份驗證。文章來源:http://www.zghlxwxcb.cn/news/detail-529803.html
另外,可以參考官方文檔或庫的文檔來了解更多參數(shù)細節(jié)和使用方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-529803.html
到了這里,關(guān)于【Python爬蟲開發(fā)基礎(chǔ)?】requests庫概述(GET和POST請求)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!