前言:html
mooc上嵩天老師提供了容易上手的網絡爬蟲視頻教程。python
筆記內容:segmentfault
requests庫 #requests官網詳細的介紹服務器
time庫網絡
BeautifulSoup庫app
擴展閱讀:關於反爬蟲,看這一篇就夠了post
一、requests庫方法 ui
網絡資源就像是一個黑盒,經過其接口(url),能夠獲取網絡資源(jpg,txt,gif,flash等)編碼
requests庫有一套完整的方法:url
其中requests.requset()是基礎的方法,能夠用此方法構造替代下面的get等具體的方法。但推薦使用get,head等單獨的方法。
requests.request() #構造一個請求,支撐如下各類方法的使用 requests.get() #獲取html網頁 requests.head()#獲取html網頁頭信息 requests.post()#向html網頁提交post請求 requests.put()#向html網頁提交put請求 requests.patch()#向html網頁提交局部修改請求 requests.delete()#向html網頁提交刪除請求 requests.options()
例子:
import requests #導入requests庫 url=http://www.baidu.com r=requests.get(url) #獲取url的對象 print(r.status_code) #狀態位200時,表示get成功,404或者其餘表示失敗 print(r.encoding) #-->'ISO-8859-1'根據header猜想響應內容的編碼方式 print(r.apparent_encoding) #-->'utf-8'從內容中分析出的響應內容編碼方式 r.encoding='utf-8' #從新定義其編碼格式爲utf-8 print(r.text)#打印url連接的內容
其中的,推薦使用apparent_encoding,更準確。
2.requests.get()
在get一個url時,可能會出現錯誤,例如網絡鏈接失敗,http異常等。
requests.ConnectionError #網絡鏈接錯誤異常,如DNS查詢失敗、拒絕鏈接等 requests.HTTPError #HTTP錯誤異常 requests.URLRequried #url缺失異常 requests.TooManyRedirects #超過最大重定向次數,產生重定向異常 requests.ConnectTimeout #鏈接遠程服務器超時異常 requests.Timeout #請求url超時,產生超時異常