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