定向爬蟲requests-bs4

定向爬蟲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://blog.csdn.net/qq_43098167/article/details/83041073'
>>> headers = {'user-agent': 'Mozilla/5.0'}
>>> 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章