第3次做業-MOOC學習筆記:Python網絡爬蟲與信息提取

1.註冊中國大學MOOC
2.選擇北京理工大學嵩天老師的《Python網絡爬蟲與信息提取》MOOC課程
3.學習完成第0周至第4周的課程內容,並完成各周做業正則表達式

 

4.提供圖片或網站顯示的學習進度,證實學習的過程。編程

 

5.寫一篇很多於1000字的學習筆記,談一下學習的體會和收穫。瀏覽器

學習筆記:cookie

      經過一週的時間,我學習了北京理工大學嵩天老師的《Python網絡爬蟲與信息提取》MOOC課程的前四周內容,瞭解了從未知曉的Python知識。大三第一次接觸Python的時候,就以爲這是一個很厲害的編程語言,它擁有強大的第三方庫,以及簡單、可擴展、免費、開源等特色,並在任課老師的介紹下,我初次認識到能夠用Python進行網絡爬蟲。而這一次網絡課程的學習,正是讓我進一步探究Python的高級之處。網絡

      前四周課程分別講了網絡爬蟲的規則、提取、實戰和框架。框架

      在《規則》中,我學習了Requests庫以及它的7個方法,而get()方法是最常使用的方法。網絡鏈接有風險,異常處理很重要,嵩天老師給出一個代碼框架,是利用try-except的方式來實現,保證網絡鏈接的異常可以被有效處理。另外,網絡爬蟲也是須要遵照必定的規則,那就是遵照Robots協議。編程語言

      在《提取》中,Beautiful Soup庫是用來解析HTML和XML文檔的功能庫。bs4庫提供了5種基本元素和3種遍歷功能。XML用尖括號和標籤標記信息;JSON用有類型的鍵值對標記信息,適合程序的使用;而YAML用無類型的鍵值對標記信息,適合人們理解。在實例1:中國大學排名爬蟲中,我學習到一個輸出對齊的小技巧,即採用中文字符的空格填充chr(12288),將它引入print中就能夠。ide

      在《實戰》中,我學習了正則表達式,它有兩種調用方式:一種是re.(方法)直接調用函數,另外一種是先用re.compile()函數編譯成正則表達式對象,再用正則表達式對象調用函數。能夠說,正則表達式能找到想提取的任何關鍵信息。有特徵的數據能夠用正則表達式庫來提取,若是數據的位置比較固定,則適合用Beautiful Soup庫定位到它的位置,再用正則表達式庫得到內容。若是,合理地將Beautiful Soup庫和正則表達式庫結合起來獲取內容,那麼這將是一種很是不錯的方法。實例3:股票數據定向爬蟲,老師實現了展現爬取進程的動態滾動條,給用戶一個很好的用戶體驗。函數

      在《框架》中,我瞭解到Scrapy框架包括「5+2」結構和三個數據流的路徑,它是經過cmd命令行實現配置文件的建立,並修改相應文件的代碼實現Scrapy爬蟲。整個過程大體分爲4個步驟,分別是:創建工程和Spider模板、編寫Spider、編寫Pipeline、配置優化。學習

      聽課時,我跟着老師編寫了不少實例,雖說有源代碼能夠參考,但實際操做起來仍是存在大大小小的問題。在「最好大學」的實例中,遇到了'NoneType' object has no attribute 'children’的問題,起初是覺得requests包沒有導入,後來才發現是url的緣由,老師給的url是https開頭,將https改成http便可。再好比,「淘寶比價獲取」實例,根據老師的代碼,沒法讀取頁面信息,只有自定義表頭,後來百度找到緣由:在淘寶獲取頁面時,淘寶設置了登陸驗證才能訪問,此時在requests請求時,須要設置cookies和user-agent,因而,我經過瀏覽器查看,將user-agent和cookies寫入getHTMLText()中。另外,百度股票頁面現在已沒法訪問,因此只能換成其餘的股票網站來進行練習。

      雖然花的時間有點久,但總歸是有所收穫。好比:正則表達式庫很好地支撐了文本匹配、文本替換的工做;好的程序和通常的程序,最大的差異不在於功能上,而在於用戶體驗,完成一個程序並不難,難就難在後續不斷優化的過程。看完視頻後再去作限時的題目,我感到並不容易,由於題目裏不少都是細節性的問題,看視頻時稍微一走神可能就會錯過這個知識點,因此課後仍是須要多加理解和練習。

相關文章
相關標籤/搜索