爬蟲學習階段性總結

爬蟲學習階段性總結css

爬蟲的基礎知識我打算就先學到這裏了,之後須要用起來的時候再去看看相關文檔和谷歌,作一個小量級的爬蟲程序問題不大,對於分佈式的和增量更新去重等需求就直接上框架,用別人的輪子仍是蠻爽的。html

簡單小量級:requests+pyquery前端

JS渲染太多的:selenium+Phantomjspython

框架:Pyspider或者Scrapy,我的比較喜歡Scrapy,主要是pyspider的文檔真的少,二者框架差很少的,前者有WEBUI,後者是命令行模式,看喜歡哪一個就用哪一個吧。git

 

學習資料總結:程序員

第一部分基礎github

1.     環境搭建:web

建議直接用虛擬機ubuntu(自帶python2和3),terminal敲代碼就能夠了正則表達式

2.     python基礎(0基礎的看這個):數據庫

http://www.runoob.com/python3/python3-tutorial.html

3.     看完上面這個以後看下面這個:(感受做者寫到錯誤調試那一章以後就不是太好了,感受是一股腦東西給你砸過來)

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

擴展閱讀:

《簡明python教程》

https://molun.net/byte-of-python-2017-new-translation-edition-release/

4.     Git教程

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

這個寫的蠻好的,看這個就夠了,後續須要的項目代碼能夠從github上拷貝,在上面也有不少的爬蟲項目能夠參考,注意看star和fork數量,能夠參考時間比較新的(push時間),算是一個挺好的資源來源(比本身百度去搜索的爬蟲不少都過時了,或者網站策略 更新了,對新手不太友好,會浪費比較多時間)

第二部分爬蟲:

1.     崔慶才博客和教程視頻:

http://cuiqingcai.com

教學視頻在youtube有,我也存到本地網盤了。

視頻內容都挺好的,一步步作下來,基本也就入門了爬蟲了

2.     閱讀相關的基礎知識:

上面作爬蟲的時候會常常遇到一些概念(前端),崔是作前端的,因此有些講的很快,不懂的時候建議把視頻暫停下來,看看下面這些概念

HTTP/HTML/AJAX/JSON/CSS/XPATH

教程均可以在這裏找到:

http://www.runoob.com/

看重點就能夠了,不須要所有都看,好比HTML就看一下基礎元素屬性和總結就行了,須要用到其餘的時候再補

3.     數據庫的基礎知識:

教程均可以在這裏找到:

http://www.runoob.com/

MySQL/MongoDB/Redis

同理,看一下基礎應用就行了,簡單爬蟲要求並不高,後續再深刻學習。

 

4.     閱讀相關的庫文檔,按照庫文檔的理解敲敲例子

這裏包括請求庫,解析庫,存儲庫和工具庫

大概是下面這些(資料經過百度或者谷歌都能搜到)

requests/re/selenium/lxml/beautifulSoup/pyquery/pyspider/scrapy/pymql/pymongo


重點以爲應該看一下幾個解析庫,好比bs4/pyquery/lxml和用一下css/xpath語法,熟悉一下每次篩選以後是什麼類型的數據,以及怎麼遍歷,取出本身想要的數據,每一個例子最好都使用print(type())打印一下類型,加深理解。

 

第三部分爬蟲練手資源:

1.     知乎分享的合集(有挺多不能用得了,可是能夠參考一下名字,搜一下最新的文章)

https://zhuanlan.zhihu.com/p/27938007

2.     崔慶才視頻中的幾個項目

 

不須要太多。

 

第四部分其餘經驗:

1.     爬蟲容易寫出知足感,因此不要在這上面花太多時間(其實我須要數據的時候仍是找其餘人要的,因此加個QQ羣,程序員都是樂於助人的),適可而止就行了,除非要在爬蟲這個職業上作長期發展

2.     加多幾個靠譜的python或者爬蟲QQ羣

3.     多作筆記,多寫代碼(寫個爬蟲可能只須要1個小時,可是寫個文章就須要2個小時,在寫文章的過程當中加深理解,跟讀書的時候作筆記是同樣的)

4.     至少要作到如下幾個爬蟲例子:

(1)   requests+正則表達式爬取靜態網頁(最好是加入搜索關鍵詞的),並加入多進程,數據庫存儲,文件下載(圖片和文本)

(2)   requests+lxml+xpath爬取靜態網頁,其餘同第(1)點

(3)   requests+bs4+css/xpath爬取靜態網頁,其餘同第(1)點

(4)   requests+pyquery+css爬取靜態網頁,其餘同第(1)點

(5)   selenium+Phantomjs爬取靜態網頁,其餘同第(1)點

(6)   pyspider+ selenium+Phantomjs爬取靜態網頁,其餘同第(1)點(靜態網頁用pyspider爬感受大材小用)

(7)   scrapy爬取動態網頁,其餘同第(1)點

(8)   找一個封IP和cookies的網站(好比微博),用scrapy爬取,把幾個pipeline都用起來,而後加入分佈式爬取(找3個雲服務器就ok了,一個發佈任務,兩個爬取),其餘同第(1)點

5.     堅持,適可而止

 

第五部分 其餘資源:

1.     反爬文章參考:

這個寫的很全面也挺棒的:

http://www.freebuf.com/articles/web/137763.html

這是一個實例演示,也不錯:

http://www.freebuf.com/news/140965.html

這個破解例子不錯:

http://blog.csdn.net/bone_ace/article/details/71056741

 

2.     一個完整的爬蟲+前端界面(真的挺棒的!)

https://github.com/GuozhuHe/webspider

相關文章
相關標籤/搜索