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