Python中爬蟲框架或模組的區別

千鋒教育qyf發表於2021-04-07

  Python中爬蟲框架或模組的區別,我們在Python的學習過程中,需要不斷的總結知識點,這樣我們才能進步的更快一些。

  

Python

  (1)爬蟲框架或模組

  Python自帶爬蟲模組:urllib、urllib2;

  第三方爬蟲模組:requests,aiohttp;

  爬蟲框架:Scrapy、pyspider。

  (2)爬蟲框架或模組的優缺點

  urllib和urllib2模組都用於請求URL相關的操作,但他們提供了不同的功能。urllib2模組中urllib2.urlopen可以接受一個Request物件或者url,(在接受Request物件時候,並以此可以來設定一個URL的headers),且只接收一個url;urllib中有urlencode,而urllib2中沒有。因此,開發人員在實際開發中經常會將urllib與urllib2一起使用。

  requests是一個HTTP庫,它僅僅用於傳送請求。對於HTTP請求而言,request是一個強大的庫,可以自己處理下載、解析,靈活性更高,高併發與分散式部署也非常靈活,對於功能可以更好實現。

  aiohttp是一個基於python3的asyncio攜程機制實現的一個http庫。相比requests,aiohttp自身就具備了非同步功能。但只能在python3環境中使用。

  Scrapy是封裝起來的框架,它包含了下載器、解析器、日誌及異常處理,是基於多執行緒的,採用twisted的方式處理。對於固定單個網站的爬取開發,Scrapy具有優勢;對於多網站爬取,併發及分散式處理方面,Scrapy不夠靈活,不便調整與擴充套件。

  Scrapy具有以下優點:

  ·Scrapy是非同步的;

  ·採取可讀性更強的XPath代替正規表示式;

  ·強大的統計和log系統;

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

  ·支援shell方式,方便獨立除錯;

  ·方便寫一些統一的過濾器;

  ·透過管道的方式存入資料庫。

  Scrapy是基於python實現的爬蟲框架,擴充套件性比較差。

  Pyspider是一個重量級的爬蟲框架。我們知道Scrapy沒有資料庫整合、分散式、斷點續爬的支援、UI控制介面等等,若Scrapy想要實現這些功能,需要自行開發。Pyspider已經整合了前面這些功能,也正因如此,Pyspider的擴充套件性太差,學習難度較大。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996644/viewspace-2766918/,如需轉載,請註明出處,否則將追究法律責任。

相關文章