python爬蟲-Requests庫入門(一)

爬蟲定義

爬蟲:是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。

reuqests安裝

requests庫是python的第三方庫,是一個比較簡單好用的爬蟲庫

打開命令行直接使用pip安裝requests第三方庫

pip install requests

requests方法

HTTP協議對資源的操作

方法 說明
GET 請求獲取URL位置的資源
HEAD 請求獲取URL位置資源的響應消息報告,即獲得該資源的頭部信息
POST 請求向URL位置的資源後附加新的數據
PUT 請求向URL位置存儲一個資源,覆蓋原URL位置的資源
PATCH 請求局部更新URL位置的資源,即改變該處資源的部分內容
DELETE 請求刪除URL位置存儲的資源

方法裏的參數

**kwargs:控制訪問的參數,均爲可選項

參數 說明
params 字典或字節序列,作爲參數增加到url中
data 字典、字節序列或文件對象,作爲Request的內容
json JSON格式的數據,作爲Request的內容
headers 字典, HTTP定製頭
cookies 字典或cookieJar , Request中的cookie
auth 元組,支持HTTP認證功能
files 字典類型,傳輸文件
timeout 設定超時時間,秒爲單位
proxies 字典類型,設定訪問代理服務器,可以增加登錄認證
allow_redirects True/False ,默認爲True ,重定向開關
stream True/False ,默認爲True ,獲取內容立即下載開關
verify True/False ,默認爲True ,認證SSL證書開關
cert 本地SSL證書路徑

requests.request( )

構造一個請求,支撐以下各方法的基礎方法
格式:requests.request(method, url,**kwargs)
method:請求方式
url:獲取頁面url鏈接
**kwargs:13個控制訪問的參數

在這裏插入圖片描述

requests.get( )

獲取HTML網頁的主要方法,對應於HTTP的GET
格式:requests.get(url, parems=none, **kwargs)
括號裏除了url,其餘看情況選擇合適的參數
parems:字典或字節序列,作爲參數增加到url中,可選項

在這裏插入圖片描述

requests.head( )

獲取HTML網頁頭信息的方法,對應於HTTP的HEAD
格式:requests.head(url, **kwargs)

在這裏插入圖片描述
requests.post( )

向HTML網頁提交POST請求的方法,對應於HTTP的POST
格式:requests.post(url, data=none, json=none, **kwargs)
data:字典、字節序列或文件,Request的內容
json:JSON格式的數據,Request的內容

在這裏插入圖片描述
requests.put( )

向HTML網頁提交PUT請求的方法,對應於HTTP的PUT
格式:requests.put(url, data=none, **kwargs)
put必須將URL位置的全部字段提交,未提交字段被刪除

requests.patch( )

向HTML網頁提交局部修改請求,對應於HTTP的PATCH
格式:requests.patch(url, data=none, **kwargs)
patch僅向URL位置提交部分字段的更新請求,相比put請求節省網絡帶寬

requests.delete( )

向HTML頁面提交刪除請求,對應於HTTP的DELETE
格式:requests.delete(url, **kwargs)

requests對象

屬性 說明
r.status_code HTTP請求的返回狀態, 200表示連接成功, 404表示失敗
r.text HTTP響應內容的字符串形式,即url對應的頁面內容
r.encoding 從HTTP header中猜測的響應內容編碼方式
r.apparent_encoding 從內容中分析出的響應內容編碼方式(備選編碼方式)
r.content HTTP響應內容的二進制形式
r.headers 返回字典形式的響應頭
r.cookies 返回響應的cookie

在這裏插入圖片描述

requests異常

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

r.raise_ for_status( )方法可以判斷返回的狀態碼是否爲200,如果不是200返回異常。使用時不用if判斷r.status_code返回的狀態碼,直接使用try- except語句進行異常處理。

爬取網頁通用框架

import requests


def getHTMLText(url):
    try:
        r = requests.get(url, timeout=10) # 設定請求時間,超時異常
        r.raise_for_status()              # 如果狀態不是200,引發HTTPError異常
        r.encoding = r.apparent_encoding  # 將根據網頁內容分析出的編碼方式當作輸出時的編碼
        return r.text
    except:
        return "產生異常"


if __name__ == "__main__":
    url = "https://www.baidu.com"
    print(getHTMLText(url))

以上均爲個人學習筆記,如有錯誤請指正,共同學習,謝謝。

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