Python中爬蟲框架或模塊的區(qū)別是什么?我們在學習Python的過程中需要不斷總結知識點,這樣才能進步更快。
(1)爬蟲框架或模塊
Python自帶爬蟲模塊:urllib、urllib2;
第三方爬蟲模塊:requests、aiohttp;
爬蟲框架:Scrapy、pyspider。
(2)爬蟲框架或模塊的優(yōu)缺點
urllib 和 urllib2 模塊都用于請求 URL 相關的操作,但它們提供不同的功能。在urllib2模塊中,urllib2.urlopen可以接受一個Request對象或者url,(在接受Request對象的時候,用它來設置一個URL的headers),并且只接收一個url; urllib 有 urlencode,而 urllib2 中沒有。因此,開發(fā)者在實際開發(fā)中經常將 urllib 與 urllib2 一起使用。
requests 是一個 HTTP 庫,僅用于發(fā)送請求。對于 HTTP 請求,request 是一個強大的庫,可以自己處理下載和解析,具有更高的靈活性。高并發(fā)和分布式部署也很靈活,功能可以更好的實現。
aiohttp是一個基于python3的asyncio攜程機制的http庫。與requests相比,aiohttp本身具有異步功能。但僅限python3環(huán)境。
Scrapy 是一個封裝框架,包括下載器、解析器、日志和異常處理。它基于多線程,并以扭曲的方式處理。對于固定單一網站的爬取開發(fā),Scrapy有優(yōu)勢;對于多站點爬取、并發(fā)和分布式處理,Scrapy不夠靈活,無法調整和擴展。
Scrapy 具有以下優(yōu)點:
·Scrapy 是異步的;
·使用更易讀的XPath代替正則表達式;
·強大的統(tǒng)計和日志系統(tǒng);
·可以同時爬取不同的網址;
·支持shell模式,方便獨立調試;
·寫一些統(tǒng)一的過濾器很方便;
· 通過管道存儲在數據庫中。
Scrapy 是一個基于 python 的爬蟲框架,擴展性較差。
Pyspider 是一個重量級的蜘蛛框架。我們知道Scrapy沒有數據庫集成、分發(fā)、支持斷點連續(xù)爬升、UI控制界面等,如果Scrapy要實現這些功能,還需要自己開發(fā)。 Pyspider集成了以上功能,正因為如此,Pyspider的可擴展性太差,學習難度大。更多關于“Python培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業(yè)需求,更科學更嚴謹,每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。