以下知識(shí)掌握了,不會(huì)寫爬蟲找我算賬
1:python基礎(chǔ)
基礎(chǔ)要點(diǎn)1:模塊的導(dǎo)入和使用、變量作用域、類型轉(zhuǎn)換、變量?jī)?nèi)存地址、對(duì)象的概念、形參/實(shí)參、tuple/list/dict/set的操作、字符串操作、for/while/break/continue。
基礎(chǔ)要點(diǎn)2:類的定義和使用、類方法/對(duì)象方法/靜態(tài)方法、、Lambda函數(shù)、測(cè)試/調(diào)試、多線程/多進(jìn)程/鎖
2:http協(xié)議
http協(xié)議是需要下苦功的,為了快速寫爬蟲,可以重點(diǎn)先理解http頭。
懂得http知識(shí)才能學(xué)會(huì)封裝一個(gè)http請(qǐng)求包,以通過(guò)服務(wù)器的驗(yàn)證。
谷歌瀏覽器按F12,打開的開發(fā)人員工具顯然是個(gè)神器,請(qǐng)打開對(duì)照學(xué)習(xí)http協(xié)議。
3:數(shù)據(jù)解壓和解碼
數(shù)據(jù)解壓和解碼容易掌握。
若客戶端在http頭中去掉"Accept-Encoding",即不接受壓縮數(shù)據(jù)。
若服務(wù)器在http頭的"Content-Encoding"指明了壓縮方式,那么在提取數(shù)據(jù)之前必須先解壓,否則會(huì)顯示為亂碼。
如以下是知乎網(wǎng)的返回的數(shù)據(jù)解壓并解碼為utf-8
4:html基礎(chǔ) 和 數(shù)據(jù)的提取
網(wǎng)頁(yè)的源碼都是html的,而網(wǎng)絡(luò)爬蟲通常需要提取網(wǎng)頁(yè)的數(shù)據(jù)再存儲(chǔ),采用的方式有正則表達(dá)式/lxml/BeautifulSoup。
5:數(shù)據(jù)保存
提取了數(shù)據(jù)當(dāng)然需要保存,怎么保存視乎自己的要求。以txt/csv文件存儲(chǔ)、電子表格存儲(chǔ)、sqlites3存儲(chǔ)、mysql存儲(chǔ)、redis存儲(chǔ)、mongo存儲(chǔ)最為常見(jiàn)
6:爬蟲神器scrapy及組件scrapy-redis
這需要好好閱讀文檔,官方1.4的文檔https://doc.scrapy.org/en/latest/intro/tutorial.html
這是極客學(xué)院翻譯的文檔,但不是那么全面。
7:安利個(gè)人寫的網(wǎng)絡(luò)爬蟲系列,目前只寫了《網(wǎng)絡(luò)爬蟲之必備知識(shí)》《網(wǎng)絡(luò)爬蟲之?dāng)?shù)據(jù)處理》,后續(xù)還有,雖然限于篇幅,有些地方講的不夠深,但寫爬蟲的最常見(jiàn)要點(diǎn)基本囊括。