1. 程式人生 > >Python3 Requests庫基本用法

Python3 Requests庫基本用法

 Requests庫中有7個主要的函式,分別是request(), get(), head(), post(), put(), patch(), delete(). 這七個函式其中request()函式是其餘六個函式的基礎函式,其餘六個函式的實現都是通過呼叫該函式實現的。

方法 說明
requests.request() 構造一個請求,支撐一下方法的基礎方法
requests.get() 獲取HTML網頁的主要方法,對應於HTTP的GET(請求URL位置的資源)
requests.head() 獲取HTML網頁頭資訊的方法,對應於HTTP的HEAD(請求URL位置的資源的頭部資訊)
requests.post() 向HTML網頁提交POST請求的方法,對應於HTTP的POST(請求向URL位置的資源附加新的資料)
requests.put() 向HTML網頁提交PUT請求的方法,對應於HTTP的PUT(請求向URL位置儲存一個資源,覆蓋原來URL位置的資源)
requests.patch() 向HTML網頁提交區域性修改的請求,對應於HTTP的PATCH(請求區域性更新URL位置的資源)
requests.delete() 向HTML網頁提交刪除請求,對應於HTTP的DELETE(請求刪除URL位置儲存的資源)

 在這個庫中一般常用的就是get()函式。最基礎的是request()函式,其一共有15個引數, 具體每個引數的用法如下;

引數 說明 例子
method 請求方式,對應於get/put/post中七種 requests.request(‘GET’,url)或者requests.request(‘HEAD’,url)等
url 待獲取的頁面的url連結
params 將字典或位元組序列,作為引數新增到url中
data 字典,位元組序列或者檔案物件,作為Request的內容
json JSON格式的資料,作為Request的內容
headers 字典,HTTP定製頭 可以在請求中附加一些資訊,例如:偽裝自己是一個瀏覽器。例如 r = requests.request(‘POST’, ‘
http://python123.io/ws
‘, headers={‘user-agent’:’Chrome/10’} 這樣就把自己偽裝成谷歌瀏覽器訪問資源)
auth 元組,支援HTTP認證功能
files 字典型別,傳輸檔案 fs={‘file’:open(’data.xls’, ‘rb’);r = requests.request(‘POST’, ‘http://python123.io/ws‘, files=fs)
timeout 設定超時時間,單位為秒
proxies 字典型別,設定訪問代理伺服器,可以增加登入認證
allow_redirects :Truel/False,預設為True,重定向開關
stream True/False 預設為True 獲取內容立即下載開關
verify True/False 預設為Ture,認證SSL證書開關
cert 本地SSL證書路徑

下面是一個常用的獲取URL位置資源的基本爬蟲框架。

def getHTMLText(url):
    try:
        kv = {'user-agent' : 'Mozilla/5.0'}
        r = requests.get(url, headers = kv, timeout = 30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return 'erro'

if __name__ == '__main__':
    url = 'https://www.baidu.com/'
    print(getHTMLText(url))