1. 程式人生 > >定向爬蟲requests-bs4<1>

定向爬蟲requests-bs4<1>

定向爬蟲requests-bs4<1>

Requests庫的安裝 Win平臺:命令列cmd 執行 pip install requests 測試:

>>>import requests
>>>r = r.get(“http://www.baidu.com”) 
>>>print(r.status_code)
200

requststs庫的傳送請求 requests.request() 構造一個請求,支撐起以下方法的基礎方法 requests.get() 獲取HTML網頁,對應HTTP_ GET requests.head()獲取HTML網頁頭,對應HTTP_HEAD requests.post() 向HTML網頁提交post請求,對應HTTP_POST requests.put() 向HTML網頁提交putt請求,對應HTTP_PUT requests.patch() 向HTML網頁提交區域性修改請求,對應HTTP_PATCH requests.delete() 向HTML網頁提交刪除請求,對應HTTP_DELETE

包含13個控制訪問引數

Params: 字典或位元組,引數增加到url中 Data: 字典,位元組或檔案,作為request內容 Json: json格式的資料,作為request內容 Headers: 字典,HTTP定製頭 Cookies: 字典或CookieJar,request中的cookie Auth: 元組,支援HTTP認證功能 Files: 字典型別,傳輸檔案 Timeout: 設定超時時間,秒為單位 Proxies: 字典,設定訪問代理伺服器,可以增加登陸認證

Requests.get()使用方法 requests.get(url,params,**kwargs) url: 網頁url連結 Params: url額外引數,字典或位元組流格式 **kwargs: 控制訪問引數

傳遞URL引數 為 URL 的查詢字串(query string)傳遞某種資料。 Requests 允許 你使用 params 關鍵字引數,以一個字串字典來提供這些引數。

>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get("http://httpbin.org/get", params=payload)
>>> print(r.url)
http://httpbin.org/get?key2=value2&key1=value1

定製請求頭 為請求新增 HTTP 頭部,只要傳遞一個 dict 給 headers 引數就可以 了。

>>> url = 'https://api.github.com/some/endpoint'
>>> headers = {'user-agent': 'my-app/0.0.1'}
>>> r = requests.get(url, headers=headers)

注意: 定製 header 的優先順序低於某些特定的資訊源 如果在 .netrc 中設定了使用者認證資訊,使用 headers= 設定的授權就 不會生效。 而如果設定了 auth= 引數,.netrc 的設定就無效了。 如果被重定向到別的主機,授權 header 就會被刪除。 代理授權 header 會被 URL 中提供的代理身份覆蓋掉。 在我們能判斷內容長度的情況下,header 的 Content-Length 會被改寫。更進一步講,Requests 不會基於定製 header 的具體情況改變自己的行為。只不過在最後的請求中,所有的 header 資訊都會被傳遞進去。

Response的屬性 r.text HTTP響應內容的字串形式 r.status_code HTTP請求的返回狀態 r.encoding 從HTTP header中猜測的響應內容的編碼方式 r.apparent_encoding 從內容中分析出的響應內容的編碼方式 r.content HTTP響應內容的二進位制形式

Response的異常 r.raise_for_status() 如果返回狀態不是200,產生HTTPError