我對python網路爬蟲的學習主要是基於中國慕課網上嵩天老師的講授,寫部落格的目的是為了更好觸類旁通,並且作為學習筆記之後複習回顧。
requests 庫是乙個簡潔且簡單的處理http請求的第三方庫。
requests的最大優點是程式編寫過程更接近正常url 訪問過程。
這個庫建立在python 語言的urllib3 庫基礎上,類似這種在其他函式庫之上再封裝功能提供更友好函式的方式在python 語言中十分常見。在python 的生態圈裡,任何人都有通過技術創新或體驗創新發表意見和展示才華的機會。
採用pip指令安裝requests庫:
\>pip install requests
測試;
request庫的7個主要方法
方法說明
requests.request()
構造乙個請求,支撐以下各方法的基礎方法
requests.get()
獲取html網頁的主要方法,對應於http的get
requests.post()
向html網頁提交post請求的方法,對應於http的post
requests.head()
獲取html網頁頭資訊的方法,對應於http的head
requests.put()
向html網頁提交put請求的方法,對應於http的put
requests.patch()
向html網頁提交區域性修改請求,對應於http的patch
requests.delete()
向html頁面提交刪除請求,對應於http的delete
requests.get(url, params=none, **kwargs)
url : 擬獲取頁面的url鏈結
params : url中的額外引數,字典或位元組流格式,可選
**kwargs: 12個控制訪問的引數
get方法的原碼
實際上get方法是用request方法來封裝的,其他六種方法也是,根本上只有一種request方法!!!
requests庫的2個重要物件:
response物件包含伺服器返回的所有資訊,同時也包含向伺服器請求的request資訊。
response物件屬性
屬性
說明r.status_code
http請求的返回狀態,200表示連線成功,404表示失敗
r.text
http響應內容的字串形式,即,url對應的頁面內容
r.encoding
從http header中猜測的響應內容編碼方式
從內容中分析出的響應內容編碼方式(備選編碼方式)
r.content
http響應內容的二進位制形式(的還原)
r.encoding:如果header中不存在charset,則認為編碼為iso‐8859‐1(這種編碼並不能解析中文!!!)
r.text根據r.encoding顯示網頁內容
response庫的異常
異常說明
requests.connectionerror
網路連線錯誤異常,如dns查詢失敗、拒絕連線等
http錯誤異常
requests.urlrequired
url缺失異常
requests.toomanyredirects
超過最大重定向次數,產生重定向異常
requests.connecttimeout
連線遠端伺服器超時異常
requests.timeout
請求url超時,產生超時異常(發憷請求到獲得內容整個過程)
raise_for_status()方法:
raise_for_status()方法能在非成功響應後產生異常,即只要返回的請求狀態status_code 不是200,這個方法會產生乙個異常,用於try…except 語句。
使用異常處理語句可以避免設定一堆複雜的if 語句,只需要在收到響應呼叫這個方法,就可以避開狀態字200以外的各種意外情況。
1import
requests
2def
gethtmltext(url):
3try
:4 r = requests.get(url, timeout=30)
5 r.raise_for_status() #
如果狀態不是200, 引發httperror異常
7return
r.text
8except:9
return
"產生異常"10
11if
__name__=="
__main__":
12 url = "
"13print(gethtmltext(url))
離線安裝python requests庫
requests 2.19.1 certifi required 2017.4.17,installed 2018.4.16 ca認證模組 chardet required 3.1.0,3.0.2,installed 3.0.4 通用字元編碼檢測器模組 idna required 2.8,2.5,i...
python Requests庫入門(一)
1 搜尋cmd,以管理員的身份執行 2 輸入pip install requests 截圖所示便代表已安裝好 3 開啟idle進行簡單測試 import requests r requests.get r.status code 200 此時返回值狀態碼應是200,200表示訪問成功 下面繼續 r....
python requests庫的使用
如果auth使用不通過的話,可以再header加入cookie header data request請求 response requests.request get url,params params,headers headers,auth auth session 請求 session req...