亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

01 Python爬蟲之Requests庫入門

系統 1979 0

目錄

  • Requests庫
    • Requests庫的7個主要方法
      • Requests庫的get()方法
      • Requests庫的head()方法
  • Response對象的屬性
  • 理解Requests庫的異常
    • 爬取網頁的通用代碼框架
  • HTTP協議
    • 協議對資源的操作
    • 理解PATCH和PUT的區別
  • HTTP協議與Requests庫
  • Requests庫主要方法解析

Requests庫

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庫的get()方法

  • r=requests.get(url)

    r: 返回一個包含服務器資源的 Response 對象

    get: 構造一個向服務器請求資源的 Request 對象

          
            import requests # 導入 requests庫
r = requests.get("https://www.baidu.com")   # 使用get請求進行進行訪問,得到response響應r
print(r.text)   # 打印response響應的文本內容
          
        

Requests庫的head()方法

  • r=requests.head(url)

    r: 返回一個包含服務器資源的 Response 對象

    head: 構造一個向服務器獲取HTML網頁頭信息的方法

          
            # head方法
r = requests.head("https://www.baidu.com")  # 使用head請求進行訪問
print(r.headers)    # 通過response響應中的headers打印 html中的頭部信息
print(r.text)       # 通過text響應的文本內容無效
          
        

Response對象的屬性

Response對象包含服務器返回的所有信息,也包含請求的Request信息

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

理解Requests庫的異常

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

爬取網頁的通用代碼框架

          
            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 "產生異常"
          
        

HTTP協議

HTTP ,Hypertext Transfer Protocol,超文本傳輸協議

HTTP是一個基于“請求與響應”模式的、無狀態的應用層協議

HTTP協議采用URL作為定位網絡資源的標識,URL格式如下:

? http://host[:port][path]

host: 合法的Internet主機域名或IP地址

port: 端口號,缺省端口為80

path: 請求資源的路徑

協議對資源的操作

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

01 Python爬蟲之Requests庫入門_第1張圖片

理解PATCH和PUT的區別

假設URL位置有一組數據UserInfo,包括UserID、UserName等20個字段
需求: 用戶修改了UserName,其他不變

  • 采用PATCH,僅向URL提交UserInfo的局部更新請求
  • 采用PUT,必須將所有20個字段一并提交到URL,未提交字段被刪除

PATCH的最主要好處 :節省網絡帶寬

HTTP協議與Requests庫

HTTP協議方法 Requests庫方法 功能一致性
GET requests.get() 一致
HEAD requests.head() 一致
POST requests.post() 一致
PUT requests.put() 一致
PATCH requests.patch() 一致
DELETE requests.delete() 一致

Requests庫主要方法解析

? Requests庫中有7個主要方法。其中,Requests庫中最常使用的就是get和head方法

  • 1. requests.request(method, url, **kwargs)

    method: 請求方式,對應get/put/post等7中

    url: 擬獲取頁面的url鏈接

    * *kwargs :控制訪問的參數, 13 個。均為可選項

    1. params:字典或字節序列,作為參數增加到url中
    2. data:字典、字節序列或文件對象,作為Request的內容
    3. json:JSON格式的數據,作為Request的內容
    4. headers:字典,HTTP定制頭
    5. cookies:字典或CookieJar,Request中的cookie
    6. auth:元組,支持HTTP認證功能
    7. files:字典類型,傳輸文件
    8. timeout:設定超時時間,秒為單位
    9. proxies:字典類型,設定訪問代理服務器,可以增加登錄認證
    10. allow_redirects:True/False,默認為True,重定向開關
    11. stream:True/False,默認為True,獲取內容立即下載開關
    12. verify:True/False,默認為True,認證SSL證書開關
    13. cert:本地SSL證書路徑
  • 2. requests.get(url, params=None, **kwargs)

    url: 擬獲取頁面的url鏈接

    params: url中的額外參數,字典或字節流格式,可選

    * *kwargs :控制訪問的參數, 12 個。均為可選項(與上面內容一致,不再贅述)

  • 3. requests.head(url, **kwargs)

    url: 擬獲取頁面的url鏈接

    * *kwargs :控制訪問的參數, 13 個。均為可選項(與上面內容一致,不再贅述)

  • 4. requests.post(url, data=None, json=None, **kwargs)

    url: 擬更新頁面的url鏈接

    data: 字典、字節序列或文件,Request的內容

    json: JSON格式的數據,作為Request的內容

    * *kwargs :控制訪問的參數, 11 個。均為可選項(與上面內容一致,不再贅述)

  • 5. requests.put(url, data=None, **kwargs)

    url: 擬更新頁面的url鏈接

    data: 字典、字節序列或文件對象,Request的內容

    * *kwargs :控制訪問的參數, 12 個。均為可選項(與上面內容一致,不再贅述)

  • 6. requests.patch(url, data=None, **kwargs)

    url: 擬更新頁面的url鏈接

    data: 字典、字節序列或文件對象,Request的內容

    * *kwargs :控制訪問的參數, 12 個。均為可選項(與上面內容一致,不再贅述)

  • 7. requests.delete(url, **kwargs)

    url: 擬刪除頁面的url鏈接

    * *kwargs :控制訪問的參數, 13 個。均為可選項(與上面內容一致,不再贅述)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 奇米影视第四色在线观看 | 久久香蕉国产线看观看网站 | 一级毛片高清大全免费观看 | 国产婷婷一区二区三区 | 日日噜噜噜夜夜爽爽狠狠图片 | 亚洲国产精品一区二区九九 | 亚洲操综合 | 精品免费在线视频 | 精品国产一区二区三区2021 | 国产深夜福利19禁在线播放 | www.五月天激情 | 国产伦精品一区二区三区免费观看 | 一区二区三区 日韩 | 日日插夜夜操 | 欧美猛交xxxxx | 亚洲免费视频在线观看 | 久草香蕉视频在线观看 | 四虎影视在线看免费观看 | 性欧美一级毛片在线播放 | 欧美影院久久 | 爱爱小视频成人免费 | 亚洲好色网| 国产精品亚欧美一区二区三区 | 91亚洲精品成人一区 | 操操日日 | 狠狠操大逼 | 日本一区二区三区四区 | 久久一区不卡中文字幕 | 老司机永久免费网站在线观看 | 99热久久国产这里有只有精品 | 欧美特黄a级高清免费大片 欧美特黄a级猛片a级 | 欧美日韩亚洲一区 | 国产日韩美国成人 | 在线a毛片免费视频观看 | 国内精品久久久久久不卡影院 | 成人a毛片在线看免费全部播放 | 鲁丝一区二区三区不属 | 国内精自线一二区 | 亚洲午夜天堂 | 久久99九九99九九99精品 | 成人免费视频在线看 |