對于爬蟲竿屹,可以選擇任何一種語言报强,只是實(shí)現(xiàn)的方式不一樣,效率的問題拱燃”龋可以是Java、Ruby碗誉、Perl......對于爬蟲召嘶,Python應(yīng)該算是優(yōu)選的語言,門檻低哮缺,簡潔弄跌,邏輯清晰,庫比較豐富......
缺點(diǎn):
1尝苇、動態(tài)性铛只,速度不是很快埠胖,對于大型爬蟲可以實(shí)現(xiàn)起來還需要其他擴(kuò)展。
2淳玩、對于多線程支持不是很好直撤,主要還是GIL鎖的緣故,網(wǎng)上大部分提倡多進(jìn)程蜕着。
......
對于Python爬蟲谊惭,還是和其他任何事物一樣,萬丈高樓平地起侮东,Python基礎(chǔ)自然要熟悉圈盔,對于OOP也是要盡量熟悉。
具體學(xué)習(xí)流程:
1悄雅、Python基礎(chǔ)(標(biāo)準(zhǔn)庫和方法驱敲,包括OOP)
2、html/css簡單的基礎(chǔ)知識宽闲。
3众眨、Python 標(biāo)準(zhǔn)模塊re、urllib內(nèi)的方法和屬性容诬,如何包裝瀏覽器頭娩梨、cookies、proxy等等览徒。
4狈定、循序漸進(jìn)學(xué)習(xí)一些第三方庫requests來代替標(biāo)準(zhǔn)庫
5、在解析網(wǎng)頁源碼的時(shí)候發(fā)現(xiàn)re模塊的寫法過于復(fù)雜和難懂习蓬,所有會選擇beautifulsoup來解析
6纽什、后又發(fā)現(xiàn)beautifulsoup庫也難免有些晦澀,接著學(xué)習(xí)lxml庫躲叼,速度應(yīng)該算是比較快的在Python里面芦缰。
7、在學(xué)習(xí)了如何解析網(wǎng)頁源碼的過程中發(fā)現(xiàn)到很多網(wǎng)頁是JavaScript渲染的枫慷,所以應(yīng)該學(xué)習(xí)到selenium让蕾、PhantomJS模塊(速度相對比較慢,但是完全夠用)
8或听、學(xué)到這里應(yīng)該算學(xué)習(xí)爬蟲到了一定的水平探孝,基本上可以解決一些常見的網(wǎng)站數(shù)據(jù)抓取,然而很多時(shí)候你會發(fā)現(xiàn)每次寫爬蟲的時(shí)候神帅,都是要一步步去實(shí)現(xiàn)一些重復(fù)的工作再姑,所以我們可以自己寫一個(gè)自定義的為自己使用的類,這樣隨時(shí)可以去調(diào)用找御,比如直接輸入一個(gè)url就可以直接構(gòu)造headers去爬取網(wǎng)頁元镀,這里有一個(gè)我自己寫類,里面包括可以自動簡單的構(gòu)造一個(gè)headers霎桅,還會隨機(jī)更換瀏覽器頭等等栖疑,還可以去模擬selenium 模擬鼠標(biāo)滾動滾動條,也就是說要提前安裝selenium滔驶,request遇革,lxml等等,這里不多說了揭糕,直接下載放入Python第三方目錄即可萝快,基本上沒有什么新東西,只是方便著角,下載地址:Crawler
9揪漩、接下來就是重頭戲:scrapy,scrapy不適合剛剛接觸爬蟲的人吏口,應(yīng)該學(xué)習(xí)一些爬蟲基礎(chǔ)奄容,因?yàn)閟crapy里面包含了前面大部分基礎(chǔ)知識如。