python網絡爬蟲總的來說有五個大的方面:
前端知識——基礎爬蟲——框架爬蟲——分布式爬蟲——突破反爬蟲
1.前端知識:“網絡爬蟲”很明顯對象是網絡,也就是網頁。說到網頁,這里就涉及到了前端的知識了,不過大家也不要慌,只要懂點必要的HTML5框架、網頁的http請求、還有JavaScript、css3的知識就可以了,以這樣的水平也是可以學會爬蟲的啦。當然,如果要非常精通python網絡爬蟲的話,深入學習前端知識是必要的。
2.基礎爬蟲:(1)基礎庫:urllib模塊/requests第三方模塊首先爬蟲就是要從網頁上把我們需要的信息抓取下來的,那么我們就要學習urllib/requests模塊,這兩種模塊是負責爬取網頁的。這里大家覺得哪一種用的習慣就用哪一種,選擇一種精通就好了。小編推薦讀者使用使用requests模塊,因為這一種簡便很多,容易操作、容易理解,所以requests被稱為“人性化模塊”。
(2)多進程、多線程和協程:為什么要學著三個知識呢?假如你要爬取200萬條的數據,使用一般的單進程或者單線程的話,你爬取下載這些數據,也許要一個星期或是更久。試問這是你想要看到的結果嗎?顯然單進程和單線程不要滿足我們追求的高效率,太浪費時間了。只要設置好多進程和多線程,爬取數據的速度可以提高10倍甚至更高的效率。
(3)網頁解析提取庫:xpath/BeautifulSoup4/正則表達式通過前面的(1)和(2)爬取下來的是網頁源代碼,這里有很多并不是我們想要的信息,所以需要將沒用的信息過濾掉,留下對我們有價值的信息。這里有三種解析器,三種在不同的場景各有特色也各有不足,總的來說,學會這三種靈活運用會很方便的。推薦理解能力不是很強的朋友或是剛入門爬蟲的朋友,學習BeautifulSoup4是很容易掌握并能夠快速應用實戰的,功能也非常強大。
(4)反屏蔽:請求頭/代理服務器/cookie在爬取網頁的時候有時會失敗,因為別人網站設置了反爬蟲措施了,這個時候就需要我們去偽裝自己的行為,讓對方網站察覺不到我們就是爬蟲方。請求頭設置,主要是模擬成瀏覽器的行為;IP被屏蔽了,就需要使用代理服務器來破解;而cookie是模擬成登錄的行為進入網站。
(5)異常:超時處理/異常處理,這里不做介紹了,自己去了解一下。(6)數據儲存庫:文件系統儲存/MySQL/MongoDB數據的儲存大概就這三種方式了,文件系統儲存是運用了python文件操作來執行的;而MySQL要使用到數據庫創建表格來儲存數據;MongoDB在爬蟲里是非常好的儲存方式,分布式爬蟲就是運用了MongoDB來儲存的。各有特色,看自己需要哪種,在靈活運用。
(7)動態網頁抓?。篈jax/PhantomJS/Selenium這三個知識點(8)抓包:APP抓包/API爬蟲3.框架爬蟲:主流且熱門的scrapy框架/人性化的pyspider框架框架不止這兩種,但是很多時候就只用到了這些框架,所以把這兩種掌握熟悉了就可以了。
4.分布式爬蟲:python操作Redis/scrapy操作Redis5.突破反爬蟲:useragent池/禁用cookies/設置下載延時和自動限速/代理IP池/tor代理/分布式下載器以上就是python網絡爬蟲的從入門到精通的知識框架,希望這篇文章能讓讀者高效的學好python網絡爬蟲。
詳細的可以看一下我的這篇文章,鏈接是:https://www.toutiao.com/i6611872532448412164/
也可以關注我,就可以學習其他關于爬蟲的知識,