爬蟲專欄第三章介紹
- 2019 年 11 月 11 日
- 筆記
一.題外話
已經有好一陣子沒有更新爬蟲專欄了,並不是豬哥懶,確實是沒有靈感。
因為豬哥寫文章並不是將所有的功能和方法列一遍而已,我覺得這些大家完全可以在網站找到,所以真的沒必要。
我更喜歡的是用一個個鮮活有趣的例子先讓大家嘗鮮,即使你不懂代碼的含義,但是你用着用着就會了,會了之後自己就會想去了解更多,所以豬哥提倡的更是一種引導的方式,而不是教導。
其實剛開始工作也是如此,到新公司一般會讓你先裝環境,然後就是了解項目,是項目引導你去學習技術。
引導學習是需要我們自己主動學習的,所以我更希望的是我們大家一起參與進來完成這一章的內容,一起來看看這張內容講什麼吧!
二.第三章講什麼
上一章節我們用十來個具體的實戰案例講解了如何使用requests庫的爬取,豬哥再強調一遍:requests庫 實戰非常非常重要,是學習爬蟲的實際起步或者說入門的一個庫,希望大家已經掌握了requests庫的基本用法。
稍微了解一點爬蟲的同學應該都知道,爬蟲的一個基本流程也逐漸明了:爬取->解析->存儲,基本三步走。
所以這一章我們當然是講如何解析爬取到的數據了(沒錯,豬哥又要po出那張爬蟲圖了,哈哈!)。

解析庫的內容:

三.解析庫
1.徵集案例
老粉們看我的文章應該也有一段時間,豬哥的寫作風格基本就是:嚴謹、有趣還有風騷,其實寫文章和敲代碼並不需要太多的時間,最費時和精力的是去思考實戰案例。
前面豬哥說了希望大家一起參與進來完成這章,所以向大家徵集有趣的案例或者投稿,投稿方式給大家講下,在公眾號回復:投稿 即可!

之前有很多同學給豬投過搞(再次感謝大家的積極投稿),但絕大部分文章沒有被採納,主要原因還是因為寫的不夠仔細,很多文章都是簡單介紹要做的項目,然後貼代碼,寫結果,中間的分析過程基本沒有。豬哥認為這種文章對新手不夠友好,所以沒有採納,還望大家見諒,希望大家能繼續支持。
寫作對大家技術的成長絕對有幫助,希望有更多的同學投入到寫作當中!
所以如果你有好的想法好的案例請在文末留言哦~
2.JSON解析
一般情況下,網站會有純數據的接口和返回網頁的接口之分。因為前後端分離的流行,所以越來越多的純數據接口了。純數據接口解析起來也會比網頁要簡單很多,所以豬哥建議我們在爬取數據的時候優先考慮是否有純數據接口。
前些年Web數據傳輸格式更多的可能是XML (eXtensible Markup Language),但是現在JSON(Javascript Object Notation) 已成為Web數據傳輸的首選,因為JSON相比XML容易閱讀、解析更快、佔用空間更少、對前端友好。

而且純JSON數據相對於網頁來說解析更加簡單,所以豬哥打算先從json開始講起。
3.網頁解析
除了純JSON數據之外,更多的是返回網頁,所以網頁解析是一個重要的知識點。
網頁解析的庫非常多,但是常用的也就那幾個,所以豬哥就重點講幾個吧:
- 正則:正則匹配網頁內容,但是效率低,局限性大。
- beautifulsoup4:美味湯,簡單易於上手,很多人學的第一個解析庫。
- lxml:XPath標準的實現庫,據說解析速度很快。
- pyquery:聽名字就知道語法和jquery相似,對熟悉jquery的同學會是個不錯的選擇。
- requests_html:有些同學可能還沒聽過,這是2018年新出的一個解析庫,是requests庫作者開發的,很多人相信它會成為主流解析庫。
常用解析庫大概就這幾個,如果你覺得還有其他的好用解析庫也歡迎在留言區給出。
四.總結
介紹完解析庫之後,我們來一次實際的解析速度實測,這樣也不至於人云亦云。還有就是給出每種解析庫的實際使用場景。