1. 程式人生 > >【爬蟲】Requests 庫的入門學習

【爬蟲】Requests 庫的入門學習

此為北理嵩天老師mooc課程【網路爬蟲與資訊提取】的課程學習筆記。

1安裝 Requests 庫

使用命令列輸入:

pip install requests

或者:

python -m pip install requests 

2 requests 的常用方法

方法名稱 說明
requests.request() 最基礎的,構造請求,支撐其他方法的使用
.get() 獲取 html 網頁的主要方法,對應GET
.head() 獲取html網頁頭資訊,對應HEAD
.post() 向html網頁提交post請求
.put() 向網頁提交PUT請求
.patch 向網頁提交區域性修改的請求
.delete() 向網頁提交刪除的請求

獲取資料可以使用head和get 傳送修改可以使用ppost、patch、put等方法。 patch 和 put的區別在於patch可以只提交需要更新的資料,而put需要將所有欄位資料重新提交,不更改的會被刪除。

get方法

構造向伺服器請求資源的requests物件,返回的的為response物件,包含各種資訊。

requests.get(url, params=None, **kwargs)

包含頁面連結、URL額外引數字典或位元組流格式、其他訪問控制可選引數。 Response 返回的常見屬性:非函式無()

屬性名稱 說明
r.status_code Http 請求的返回狀態,200成,404或其他為失敗。
r.text Http相應內容的字串形式,url的頁面內容
r.encoding 從HTTP的header中猜測的內容編碼方式,一般不含中文
r.apparent_encoding 從內容中分析出相應內容的編碼方式,便於解析出中文
r.content HTTP相應內容的二進位制形式

連線異常

常用的requests庫的異常,注意不是函式,無()

異常內容 說明
requests.ConnectionError 網路連線異常,dns查詢失敗,伺服器防火牆拒絕連線
requests.HTTPError Http錯誤異常
requests.URLRequired URL缺失異常
requests.TooManyRedirects 使用者訪問url重定向次數過多
requests.ConnectTimeout 僅指與遠端伺服器連線時的超時異常
requests.Timeout 發起到獲得URL整個過程的超時異常

判斷返回的response型別的狀態是不是200,如果返回的不是200說明有錯誤,在程式中產生requests.HTTPError異常

r.raise_for_status()

爬取網頁的通用程式碼框架:

import requests
def getHTMLText(url):
    try:
        r = requests.get(url , timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "產生異常"

if __name__ == "__main__":
    url = "https://www.csdn.net/"
    print(getHTMLText(url))