教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Python中爬蟲框架或模塊的區(qū)別【Python面試題】

更新時間:2020年09月29日10時54分 來源:傳智播客 瀏覽次數(shù):

(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攜程機制實現(xiàn)的一個http庫。相比requests,aiohttp自身就具備了異步功能。但只能在python3環(huán)境中使用。

Scrapy是封裝起來的框架,它包含了下載器、解析器、日志及異常處理,是基于多線程的,采用twisted的方式處理。對于固定單個網(wǎng)站的爬取開發(fā),Scrapy具有優(yōu)勢;對于多網(wǎng)站爬取,并發(fā)及分布式處理方面,Scrapy不夠靈活,不便調(diào)整與擴展。

Scrapy具有以下優(yōu)點:

·Scrapy是異步的;

·采取可讀性更強的XPath代替正則表達式;

·強大的統(tǒng)計和log 系統(tǒng);

·可同時在不同的URL上爬行;

·支持shell方式,方便獨立調(diào)試;

·方便寫一些統(tǒng)一的過濾器;

·通過管道的方式存入數(shù)據(jù)庫。

Scrapy是基于python實現(xiàn)的爬蟲框架,擴展性比較差。

Pyspider是一個重量級的爬蟲框架。我們知道Scrapy沒有數(shù)據(jù)庫集成、分布式、斷點續(xù)爬的支持、UI控制界面等等,若Scrapy想要實現(xiàn)這些功能,需要自行開發(fā)。Pyspider已經(jīng)集成了前面這些功能,也正因如此,Pyspider的擴展性太差,學習難度較大。


猜你喜歡

Python爬蟲入門教程 百度云盤下載 

python爬蟲可以用來做什么? 

python爬蟲視頻教程【6天掌握python爬蟲】 

Python高級軟件工程培訓課程 

0 分享到:
和我們在線交談!