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的擴展性太差,學習難度較大。
本文來自千鋒教育,轉載請注明出處。
總結
以上是生活随笔為你收集整理的Python中爬虫框架或模块的区别!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python实现二叉树的三种深度遍历方法
- 下一篇: Python中if条件判断语句的用法!