pyspider是一個支持任務監控、項目管理、多種數據庫,具有WebUI的爬蟲框架,它采用Python語言編寫,分布式架構。詳細特性如下:
擁有Web腳本編輯界面,任務監控器,項目管理器和結構查看器;
數據庫支持MySQL、MongoDB、Redis、SQLite、Elasticsearch、PostgreSQL、SQLAlchemy;
隊列服務支持RabbitMQ、Beanstalk、Redis、Kombu;
支持抓取JavaScript的頁面;
組件可替換,支持單機、分布式部署,支持Docker部署;
強大的調度控制,支持超時重爬及優先級設置;
支持Python2&3。
pyspider主要分為Scheduler(調度器)、Fetcher(抓取器)、Processer(處理器)三個部分,整個爬取過程受到Monitor(監控器)的監控,抓取的結果被ResultWorker(結果處理器)處理。基本流程為:Scheduler發起任務調度,Fetcher抓取網頁內容,Processer解析網頁內容,再將新生成的Request發給Scheduler進行調度,將生成的提取結果輸出保存。
2pyspidervsscrapypyspider擁有WebUI,爬蟲的編寫、調試可在WebUI中進行;Scrapy采用采用代碼、命令行操作,實現可視化需對接Portia。
pyspider支持使用PhantomJS對JavaScript渲染頁面的采集;Scrapy需對接Scrapy-Splash組件。
pyspider內置了PyQuery(Python爬蟲(五):PyQuery框架)作為選擇器;Scrapy對接了XPath、CSS選擇器、正則匹配。
pyspider擴展性弱;Scrapy模塊之間耦合度低,擴展性強,如:對接Middleware、Pipeline等組件實現更強功能。
總的來說,pyspider更加便捷,Scrapy擴展性更強,如果要快速實現爬取優選pyspider,如果爬取規模較大、反爬機制較強,優選scrapy。
以上內容為大家介紹了Python爬蟲之pyspider,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。