1.7~1.8學習筆記
requests.request()構造一個請求,支撐以下各方法的基礎方法
requests.get()獲取HTML網頁的主要方法,對應於HTTP的GET
requests.head()獲取HTML網頁頭資訊的方法,對應於HTTP的HEAD
requests.post()向HTML網頁提交POST請求的方法,對應於HTTP的POST
requests.put()向HTML網頁提交PUT請求的方法,對應於HTTP的PUT
requests.patch()向HTML網頁提交區域性修改請求,對應於HTTP的PATCH
requests.delete()向HTML網頁提交刪除請求,對應於
下面六個都是通過呼叫第一個函式來實現的
r = requests.get(url)
構造一個向伺服器請求資源的Request物件
返回一個包含伺服器資源的Response物件
requests.get(url,params=None,**kwargs)
url:擬獲取頁面的url連結
params:url中的額外引數,字典或位元組流格式,可選
**kwargs:12個控制訪問的引數
Response物件包含爬蟲返回的內容
Response物件的屬性:
r.status_code HTTP請求的返回狀態,200表示成功,404(其他)都表示失敗
r.text HTTP相應內容的字串形式,即,url對應的頁面內容
r.encoding 從HTTP header中猜測的響應內容編碼方式
r.apparent_encoding 從內容中分析出的響應內容編碼方式(備選編碼方式)
r.content HTTP響應內容的二進位制形式
如果header中不存在charset,則認為編碼方式為ISO-8859-1
當encoding不能正確顯示內容的時候就應該使用apparent_encoding
Request庫異常:
request.ConnectionError 網路連線異常
request.HTTPError HTT 錯誤異常
request.URLRequired URL缺失異常
request.TooManyRedirects 超過最大重定向次數,重定向異常
request.ConnectionTimeout 連線遠端伺服器超時異常
request.Timeout 請求URL超時,超時異常
HTTP 超文字傳輸協議
URL格式 http://host[:port][path]
host:合法的Internet主機域名或IP地址
port:埠號,預設埠為80
path:請求資源的路徑
HTTP協議對資源的操作:
GET:請求獲取URL位置的資源
HEAD:請求獲取URL位置資源的響應訊息報告,即獲得該資源的頭部資訊
POST:請求向URL位置的資源後附加新的資料
PUT:請求向URL位置儲存一個資源,覆蓋原URL位置的資源
PATCH:請求區域性更新URL位置的資源,即改變該處資源的部分內容
DELETE:請求刪除URL位置儲存的資源
如果是要修改一組資料中的一部分欄位,用PATCH只需要向URL提交該部分區域性更新請求,如用PUT必須將整組資料的所有欄位一併提交到URL,未提交的欄位將會被刪除
PATCH最主要好處:節省網路頻寬
HTTP協議與Request庫功能一致
**kwargs:控制訪問的引數,以下為可選項:
params:字典或位元組序列,作為引數增加到url中
data:字典、位元組序列或檔案物件,作為Request的內容
json:JSON格式的資料,作為Request的內容
headers:字典,HTTP定製頭
cookies:字典或CookieJar,Request中的cookie
auth:元組,支援HTTP認證功能
file:字典型別,傳輸檔案
timeout:設定超時時間,秒為單位
proxies:字典型別,設定訪問代理伺服器,可以增加登入認證
allow_redirects:True/False,預設為True,重定向開關
stream:True/False,預設為True,獲取內容立即下載開關
verity:True/False,預設為True,認證SSL證書開關
cert:本地SSL證書路徑
requests.head(url,**kwargs)
requests.post(url,data=Node,json=None,**kwargs)
requests.put(url,data=Node,**kwargs)
requests.patch(url,data=Node,**kwargs)
requests.delete(url,**kwargs)
Robot協議:決定哪些內容可以被爬取