溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Requests模塊抓取網(wǎng)頁

發(fā)布時間:2023-04-13 11:46:05 來源:億速云 閱讀:128 作者:iii 欄目:編程語言

這篇文章主要介紹“如何使用Requests模塊抓取網(wǎng)頁”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“如何使用Requests模塊抓取網(wǎng)頁”文章能幫助大家解決問題。

爬取網(wǎng)頁其實就是通過URL獲取網(wǎng)頁信息,網(wǎng)頁信息的實質是一段添加了JavaScript和CSS的HTML代碼。Python提供了一個抓取網(wǎng)頁信息的第三方模塊requests,requests模塊自稱“HTTP for Humans”,直譯過來的意思是專門為人類而設計的HTTP模塊,該模塊支持發(fā)送請求,也支持獲取響應。

1.發(fā)送請求

requests模塊提供了很多發(fā)送HTTP請求的函數(shù),常用的請求函數(shù)具體如表10-1所示。

表10-1 requests模塊的請求函數(shù)

如何使用Requests模塊抓取網(wǎng)頁

2.獲取響應

requests模塊提供的Response 類對象用于動態(tài)地響應客戶端的請求,控制發(fā)送給用戶的信息,并且將動態(tài)地生成響應,包括狀態(tài)碼、網(wǎng)頁的內(nèi)容等。接下來通過一張表來列舉Response類可以獲取到的信息,如表10-2所示。

表10-2 Response 類的常用屬性

如何使用Requests模塊抓取網(wǎng)頁

接下來通過一個案例來演示如何使用requests模塊抓取百度網(wǎng)頁,具體代碼如下:

# 01 requests baidu
import requests
base_url = 'http://www.baidu.com'
#發(fā)送GET請求
res = requests.get (base_url)
print("響應狀態(tài)碼:{}".format(res.status_code))#獲取響應狀態(tài)碼
print("編碼方式:{}".format(res.encoding))#獲取響應內(nèi)容的編碼方式
res.encoding = 'utf-8'#更新響應內(nèi)容的編碼方式為UIE-8
print("網(wǎng)頁源代碼:n{}".format(res.text)) #獲取響應內(nèi)容

以上代碼中,第2行使用import導入了requests模塊;第3~4行代碼根據(jù)URL向服務器發(fā)送了一個GET請求,并使用變量res接收服務器返回的響應內(nèi)容;第5~6行代碼打印了響應內(nèi)容的狀態(tài)碼和編碼方式;第7行將響應內(nèi)容的編碼方式更改為“utf-8”;第8行代碼打印了響應內(nèi)容。運行程序,程序的輸出結果如下:

響應狀態(tài)碼:200
編碼方式:ISO-8859-1
網(wǎng)頁源代碼:
百度一下,你就知道…省略N行…

值得一提的是,使用requests模塊爬取網(wǎng)頁時,可能會因為沒有連接網(wǎng)絡、服務器連接失敗等原因導致產(chǎn)生各種異常,最常見的兩個異常是URLError和HTTPError,這些網(wǎng)絡異??梢允褂?try…except 語句捕獲與處理。

關于“如何使用Requests模塊抓取網(wǎng)頁”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識,可以關注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI