對于爬蟲,可以選擇任何一種語言,只是實現(xiàn)的方式不一樣,效率的問題??梢允荍ava、Ruby、Perl......對于爬蟲,Python應該算是優(yōu)選的語言,門檻低,簡潔,邏輯清晰,庫比較豐富......
缺點:
1、動態(tài)性,速度不是很快,對于大型爬蟲可以實現(xiàn)起來還需要其他擴展。
2、對于多線程支持不是很好,主要還是GIL鎖的緣故,網上大部分提倡多進程。
......
對于Python爬蟲,還是和其他任何事物一樣,萬丈高樓平地起,Python基礎自然要熟悉,對于OOP也是要盡量熟悉。
具體學習流程:
1、Python基礎(標準庫和方法,包括OOP)
2、html/css簡單的基礎知識。
3、Python 標準模塊re、urllib內的方法和屬性,如何包裝瀏覽器頭、cookies、proxy等等。
4、循序漸進學習一些第三方庫requests來代替標準庫
5、在解析網頁源碼的時候發(fā)現(xiàn)re模塊的寫法過于復雜和難懂,所有會選擇beautifulsoup來解析
6、后又發(fā)現(xiàn)beautifulsoup庫也難免有些晦澀,接著學習lxml庫,速度應該算是比較快的在Python里面。
7、在學習了如何解析網頁源碼的過程中發(fā)現(xiàn)到很多網頁是JavaScript渲染的,所以應該學習到selenium、PhantomJS模塊(速度相對比較慢,但是完全夠用)
8、學到這里應該算學習爬蟲到了一定的水平,基本上可以解決一些常見的網站數(shù)據抓取,然而很多時候你會發(fā)現(xiàn)每次寫爬蟲的時候,都是要一步步去實現(xiàn)一些重復的工作,所以我們可以自己寫一個自定義的為自己使用的類,這樣隨時可以去調用,比如直接輸入一個url就可以直接構造headers去爬取網頁,這里有一個我自己寫類,里面包括可以自動簡單的構造一個headers,還會隨機更換瀏覽器頭等等,還可以去模擬selenium 模擬鼠標滾動滾動條,也就是說要提前安裝selenium,request,lxml等等,這里不多說了,直接下載放入Python第三方目錄即可,基本上沒有什么新東西,只是方便,下載地址:Crawler
9、接下來就是重頭戲:scrapy,scrapy不適合剛剛接觸爬蟲的人,應該學習一些爬蟲基礎,因為scrapy里面包含了前面大部分基礎知識如。