1.註冊中國大學MOOChtml
2.選擇北京理工大學嵩天老師的《Python網絡爬蟲與信息提取》MOOC課程html5
3.學習完成第0周至第4周的課程內容,並完成各周做業python
4.提供圖片或網站顯示的學習進度,證實學習的過程。程序員
5.寫一篇很多於1000字的學習筆記,談一下學習的體會和收穫。正則表達式
學習《python網絡爬蟲與信息提取》心得與收穫shell
通過一週的時間,我在中國大學MOOC上學習了北京理工大學嵩天老師的《python網絡爬蟲與信息提取》,經過這一週的學習,我總結了個人收穫及體會。服務器
1、網絡爬蟲以前奏:常見的Python IDE工具備兩種,一種是文本工具類IDE,一種是集成工具類IDE。其中,文本工具類IDE主要包括IDLE、Sublime Text;集成工具類IDE主要包括PyCharm、Anaconda&Spyder。網絡
2、網絡爬蟲之規則:一、Requests庫的安裝:以「管理員身份」運行cmd,輸入pip install requests.app
二、Requests庫的7個方法:requests.request() 構造一個請求,支撐如下各方法的基礎方法。框架
requests.get() 獲取HTML網頁的主要方法,對應HTTP的GET。
requests.head() 獲取網頁頭信息的方法,對應HTTP的HEAD。
requests.post() 向HTML網頁提交POST請求的方法,對應HTTP的POST。
requests.put() 向HTML網頁提交PUT請求的方法,對應於HTTP的PUT。
requests.patch() 向HTML網頁提交局部修改請求,對應於HTTP的PATCH。
requests.delete() 向HTML頁面提交刪除請求,對應於HTTP的DELETE。
三、Response對象的屬性: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超時,產生超時異常。
3、網絡爬蟲之提取:一、Beautiful Soup庫的安裝:以「管理員身份運行」cmd,執行pip install beautifulsoup4
二、beautiful soup庫是解析、遍歷、維護「標籤樹」的功能庫
三、bs4的HTML解析器 bs4的HTML解析器 BeautifulSoup(mk,'html.parser') 安裝bs4庫
lxml的HTML解析器 BeautifulSoup(mk,’lxml’) pip install lxml
lxml的XML解析器 BeautifulSoup(mk,’xml’) pip install lxml
html5lib的解析器 BeautifulSoup(mk,’html5lib’) pip install html5lib
四、BeautifulSoup類的基本元素:Tag、Name、Attributes、NavigableString、Comment
五、標籤樹的三種遍歷:下行遍歷、上行遍歷、平行遍歷
六、信息標記的三種形式:XML、JSON、YAML
4、網絡爬蟲之實戰:RE庫主要功能函數: re.search() 在一個字符串中搜索匹配正則表達式的第一個位置,返回match對象。
re.match() 從一個字符串的開始位置起匹配正則表達式,返回match對象。
re.findall() 搜索字符串,以列表類型返回所有能匹配的子串。
re.spilt() 將一個字符串按照正則表達式匹配結果進行分割,返回列表類型。
re.finditer() 搜索字符串,返回一個匹配結果的迭代類型,每一個迭代元素是match對象。
re.sub() 在一個字符串中替換全部匹配正則表達式的子串,返回替換後的字符串。
5、網絡爬蟲之框架:一、Scrapy安裝:以「管理員身份運行」 cmd,執行pip install scrapy
二、Scrapy不是一個函數功能庫,而是一個爬蟲框架。爬蟲框架是實現爬蟲功能的一個軟件結構和功能組件集合。爬蟲框架是一個半成品,可以幫助用戶實現專業網絡爬蟲。
三、Scrapy經常使用命令:startproject 建立一個新工程
genspider 建立一個爬蟲
settings 得到爬蟲配置信息
crawl 運行一個爬蟲
list 列出工程中全部爬蟲
shell 啓動URL調試命令行
四、Scrapy爬蟲的命令行邏輯:命令行更容易自動化,適合腳本控制本質上,Scrapy是給程序員用的,功能更重要。
經過此次學習,我更進一步地瞭解了什麼是網絡爬蟲,也讓我感受到了Python語言的樂趣,讓我愈來愈喜歡這門語言,同時也在學習過程當中發現自身掌握知識點的不足以及明白了要如何改進。