Python學習之request庫的使用

2022-07-11 21:30:17 字數 2051 閱讀 5257

一、requests庫簡介

requests庫是乙個簡潔的能夠簡單地處理http請求的第三方庫,它的最大優點是程式編寫過程更接近正常url訪問過程。

另外,request庫支援非常豐富的鏈結訪問功能,包括國際網域名稱和url獲取、http長連線和連線快取、http會話和cookie保持、瀏覽器使用風格的ssl驗證、基本的摘要驗證、有效鍵值對cookie記錄、

二、request庫的使用

1.request庫中常用的網頁請求函式

get(url[,timeout=n])        對應於http的get方式,獲取網頁最常用的方法,可以增加timeout=n引數,設定每次請求超時時間為n秒

post(url,data=)     對應於http的post方式,其中字典用於傳遞客戶資料

delete(url)            對應於http中的delete方式

haed(url)              對應於http中的head方式

options(url)             對應於http中的options方式

put(url,data=)     對應於http中的put方式,其中字典用於傳遞客戶資料

get()是獲取網頁最常用的方法,在呼叫requests.get()函式後,返回網頁內容會儲存成為乙個response物件,其中get()函式的引數url鏈結必須採用http或者https的方式訪問。

如下:

2.和瀏覽器互動過程一樣,requests.get()代表請求過程,它返回的response物件代表響應,返回內容作為乙個物件更便於操作,下面介紹response物件的屬性:

status_code      http請求的返回狀態,整數200表示連線成功,404表示失敗

text            http響應內容的字串形式,即url對應的頁面內容

encoding        http響應內容的編碼方式

content        http響應內容的二進位制形式

(1)status_code屬性返回請求http後的狀態,在處理資料之前要先判斷狀態情況,如果請求未被響應,需要終止處理內容。text屬性是請求的頁面內容,以字串形式展示。encoding屬性非常重要,

它給出了返回頁面內容的編碼方式,可以通過對encoding屬性值更改編碼方式,以便於處理中文字元。content屬性是頁面內容的二進位制形式。

如下獲取文字:

如下改變編碼型別:

(2)response物件的方法:

json          如果http響應內容包括json格式資料,則該方法解析json資料

raise_for_status       如果不是200,則產生異常

json()方法能夠在http響應內容中解析存在的json資料,這將帶來解析http的便利。raise_for_status()方法能在非成功響應內容後產生異常,即只要返回的請求狀態status_code不是200,

這個方法就會產生乙個異常,用於try-except語句。使用異常處理語句可以避免設定一堆複雜的if語句,只需要在收到響應時呼叫這個方法,就可以避開狀態200以外的各種意外情況。

requests會產生幾種異常。當遇到網路問題時,如dns查詢失敗、拒絕連線等,requests會丟擲connectionerror異常;遇到http響應無效時,requests則會丟擲httperror異常;若請求url超時,則丟擲timeout異常;

若請求超過了設定的最大重向次數,則會丟擲乙個toomanyredirects異常。

乙個獲取乙個網頁內容的函式**:

僅用於python學習筆記

python小白學習記錄 爬蟲requests篇

一 引用庫 import requests 二 請求訪問url,網頁相應 res requests.get 網頁位址 三 表明返回內容 目前返回的response物件有四種屬性 status code 檢查請求是否成功 content 將資料轉換為二進位制資料 text 將資料轉換為字串型資料 en...

Python爬蟲 HTTP協議 Requests庫

http協議 http hypertext transfer protocol 即超文字傳輸協議。url是通過http協議訪問資源的internet路徑,乙個url對應乙個資料資源。http協議對資源的操作 requests庫提供了http所有的基本請求方式。官方介紹 requests庫的6個主要方...

python 爬蟲系列02 認識 requests

本系列所有文章基於 python3.5.2 requests 是基於 urllib 的三方模組,相比於 uillib,操作更簡潔,功能更強大,而且支援 python3 getimport requests r requests.get url print r.status code print r....