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