1. 程式人生 > >python 爬蟲開發基礎知識

python 爬蟲開發基礎知識

  1. Request
    請求方式 常用的有get post
    請求的url
    第一部分是協議(或稱為服務方式)
    第二部分是存有該資源的主機IP地址(有時也包括埠號)
    第三部分是主機資源的具體地址,如目錄和檔名等
    請求頭 包含請求時的頭部資訊,如User-Agent,Host,Cookies等資訊
    請求體 請求時攜帶的資料,如提交表單資料時候的表單資料
  2. Response
    所有HTTP響應的第一行都是狀態行,依次是當前HTTP版本號,3位數字組成的狀態程式碼,以及描述狀態的短語,彼此由空格分隔
    相應狀態 有多種響應狀態,如:200代表成功,301跳轉,404找不到頁面,502伺服器錯誤
    響應頭 如內容型別,型別的長度,伺服器資訊,設定Cookie
    響應體 最主要的部分,包含請求資源的內容,如網頁HTMl,圖片,二進位制資料等
    3.URL解析
    urlparse
    from urllib.parse import urlparse
    result = urlparse("
    http://www.baidu.com/index.html;user?id=5#comment
    ")
    urlencode 這個方法可以將字典轉換為url引數
    urlencode(params) params 是字典格式
    4.Requests是用python語言基於urllib編寫的
    response.text會出現亂碼的問題,所以這個使用response.content
    這樣返回的資料格式其實是二進位制格式,然後通過decode()轉換為utf-8,這樣就解決了通過response.text直接返回顯示亂碼的問題.
    Requests模組允許使用params關鍵字傳遞引數,以一個字典來傳遞這些引數
    response = requests.get("
    http://httpbin.org/get",params=data
    )
    response = requests.post("http://httpbin.org/post",data=data)
    檔案上傳
    files= {"files":open("git.jpeg","rb")}
    response = requests.post("http://httpbin.org/post",files=files)
    獲取cookie response.cookies
    證書驗證
    from requests.packages import urllib3
    urllib3.disable_warnings()
    response = requests.get("
    https://www.12306.cn",verify=False
    )
    代理設定
    requests.get("https://www.baidu.com",proxies=proxies)
    認證設定
    response = requests.get("http://120.27.34.24:9001/",auth=HTTPBasicAuth("user","123"))
    異常
    所有的異常方法都在requests.exceptions,使用時根據需要進行引入即可