requests(爬蟲系列之一)
由於最近工作中,與同事對接模擬手機瀏覽器進行廣告模擬跳轉。又一次接觸用到爬蟲的知識,以前用過urllib + bs4 + selenium定向爬取網易一元奪寶的商品信息保存在數據庫中,當時,還是太年輕,對爬蟲不是很瞭解,對爬蟲的robots協議也不知道。現在重新梳理一下爬蟲的知識。爭取寫一個系列,大致內容順序是requests, bs4,re, scrapy, selenium等。
在介紹requests庫之前,在給大家分享之前呢,小編推薦一下一個挺不錯的交流寶地,裡面都是一群熱愛並在學習Python的小夥伴們,大幾千了吧,各種各樣的人群都有,特別喜歡看到這種大家一起交流解決難題的氛圍,群資料也上傳了好多,各種大牛解決小白的問題,這個Python群:330637182 歡迎大家進來一起交流討論,一起進步,儘早掌握這門Python語言。
下面內容是在上嵩天教授課程筆記整理。在這裡感謝他。
HTTP協議對資源的操作
方法 | 說明 |
---|---|
GET | 請求獲取URL位置的資源 |
HEAD | 請求獲取URL位置資源的響應消息報告,即獲得資源的頭部信息 |
POST | 請求向URL位置的資源後附加新的消息 |
PUT | 請求向URL位置存儲一個資源,覆蓋原URL位置的資源 |
PATCH | 請求局部更新URL位置的資源,即改變該處資源的部分內容 |
DELETE | 請求刪除URL位置存儲的資源 |
以上方法中,GET
,HEAD
是從服務器獲取信息到本地,PUT
,POST
,PATCH
,DELETE
是從本地向服務器提交信息。通過URL和命令管理資源,操作獨立無狀態,網絡通道及服務器成了黑盒子。
文檔
安裝
pip install requests
requests庫安裝小測
requests庫7個主要方法
方法 | 說明 |
---|---|
requsts.requst() | 構造一個請求,最基本的方法,是下面方法的支撐 |
requsts.get() | 獲取網頁,對應HTTP中的GET方法 |
requsts.post() | 向網頁提交信息,對應HTTP中的POST方法 |
requsts.head() | 獲取html網頁的頭信息,對應HTTP中的HEAD方法 |
requsts.put() | 向html提交put方法,對應HTTP中的PUT方法 |
requsts.patch() | 向html網頁提交局部請求修改的的請求,對應HTTP中的PATCH方法 |
requsts.delete() | 向html提交刪除請求,對應HTTP中的DELETE方法 |
列出幾個重要的屬性:
屬性 | 說明 |
---|---|
r.status_code | HTTP請求返回狀態碼,200表示成功 |
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超時,產生超時異常 |
爬取網頁的通用代碼框架
Requests庫中的head()方法
Requests庫中的post()方法
Requests庫中的put()方法
requests介紹完了,格式不是太好,在此抱歉,爬蟲系列有時間話會一直更新下去,另外,爬蟲系列完了,計劃做關於python數據處理與繪圖系列。
謝謝閱讀,不要吝嗇你的點贊或打賞。本文轉載於簡書,謝謝若與