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