requests

requests 庫:
1: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
2:自動爬取html頁面 自動網絡請求提交
 r = requests.get(url)
(1)get方法和url構造了一個向服務器請求資源的Request對象
(2)返回一個包含服務器資源的Response對象
3:Response 對象的屬性
r.status_code http請求的狀態碼,200表示鏈接成功,其他或者404表示失敗
r.txt HTTP響應內容的字符串形式,即:url對應的頁面內容
r.encoding 從HTTPheader中猜測的響應內容的編碼方式
r.apparent_encoding 從內容中分析出的響應內容編碼方式()更準確
r.contend HTTP響應內容的二進制形式
先看返回的的狀態碼
import requests
r = requests.get("http://www.baidu.com")
r.status_code
4:Requests庫異常
requests.ConnectionError:網絡鏈接錯誤異常,如DNS查詢異常、拒絕鏈接等。
requests.HTTPError:HTTP錯誤異常(HTTP協議異常)
requests.URLRequired:URL缺失異常
requests.TooManyRedirects:超過最大重定向次數,產生重定向異常
requests.ConnectTimeout:鏈接遠程服務器超時異常
requests.TimeOut :請求URL超時,產生超時異常
r.raise_for_status():如果不是200,產生異常requests.HTTPError
5:爬取網頁的通用代碼框架:(網絡連接有風險,異常處理很重要)
import requests
def getHTMLText(url):
    try:
        r = requests.get(url,timeout=30)
        r.raise_for_status()#如果狀態不是200,引發HTTPError異常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "產生異常"
if __name__ == "__main__":
    url = "http//www.baidu.com"
    print(getHTMLText(url))
    

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