1. 程式人生 > 實用技巧 >python爬蟲學習筆記(更新中)

python爬蟲學習筆記(更新中)

requests庫簡單介紹

import requests
r = requests.get("url")
/*
r=requests.get(url,params=Node,**kwargs)

url:擬獲取頁面的url連結
params:字典或位元組流格式,可選
**kwargs:12個控制訪問的引數
*/

response的物件型別

  • r.status_code HTTP請求的返回狀態,200表示連線成功,404等表示失敗
  • r.text HTTP響應內容的字串形式,即url對應的頁面內容
  • r.encoding 從HTTP header中猜測的響應內容的編碼方式
    • 如果header中不存在charset,則認為編碼是ISO-8859-1
  • r.apparent_encoding 從網頁內容中分析出的響應備選編碼形式(通常更準確)
  • r.content HTTP響應內容的二進位制形式(比如說一個圖片就是二進位制編碼)

requests庫的7個主要方法

  • 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頁面提交刪除請求,對應於HTTP的DELETE

requests庫常用異常

  • requests.ConnectionError 網路連線錯誤異常,如DNS查詢失敗、拒絕連線等
  • requests.HTTPError HTTP錯誤異常
  • requests.URLRequired URL缺失異常
  • requests.TooManyRedirects 超過最大重定向次數,產生重定向異常
  • requests.ConnectTimeout 連線遠端伺服器超時異常
  • requests.Timeout 請求URL超時,產生超時異常

HTTP協議

超文字傳輸協議。
HTTP是一個基於“請求與響應”模式的、無狀態的(第一次和第二次請求並沒有關聯)應用層協議。

HTTP協議採用URL作為定位網路資源的標識。

URL格式:\(http://host[:prot][path]\)

  • host:合法的Internet主機域名或IP地址
  • port:埠號,預設埠為80
  • path:請求資源的路徑

URL是通過HTTP協議存取資源的Internet路徑,一個URL對應一個數據資源。