pyspider vs scrapy
pyspider 和 scrapy 比较起来有什么优缺点吗? – 知乎
“Pyspiders是国内某大神开发了个WebUI的[Pyspider](GitHub – binux/pyspider: A Powerful Spider(Web Crawler) System in Python.),具有以下特性:
1. python 脚本控制,可以用任何你喜欢的html解析包(内置 pyquery)
2. WEB 界面编写调试脚本,起停脚本,监控执行状态,查看活动历史,获取结果产出
3. 支持 MySQL, MongoDB, SQLite
4. 支持抓取 JavaScript 的页面
5. 组件可替换,支持单机/分布式部署,支持 Docker 部署
6. 强大的调度控制
从内容上讲,两者具有功能差不多,包括以上3,5,6。不同是Scrapy原生不支持js渲染,需要单独下载[scrapy-splash](GitHub – scrapy-plugins/scrapy-splash: Scrapy+Splash for JavaScript integration),而PyScrapy内置支持[scrapyjs](GitHub – scrapy-plugins/scrapy-splash: Scrapy+Splash for JavaScript integration);PySpider内置 pyquery选择器,Scrapy有XPath和CSS选择器,这两个大家可能更熟一点;此外,Scrapy全部命令行操作,Pyscrapy有较好的WebUI;还有,scrapy对千万级URL去重支持很好,采用[布隆过滤](海量大数据处理单机方案)来做,而Spider用的是数据库来去重?最后,PySpider更加容易调试,scrapy默认的debug模式信息量太大,warn模式信息量太少,由于异步框架出错后是不会停掉其他任务的,也就是出错了还会接着跑。。。从整体上来说,pyspider比scrapy简单,并且pyspider可以在线提供爬虫服务,也就是所说的SaaS,想要做个简单的爬虫推荐使用它,但自定义程度相对scrapy低,社区人数和文档都没有scrapy强,但scrapy要学习的相关知识也较多,故而完成一个爬虫的时间较长。”
“框架概述
爬虫框架,其中比较好用的是 Scrapy 和 PySpider。
* PySpider
优点:分布式框架,上手更简单,操作更加简便,因为它增加了 WEB 界面,写爬虫迅速,集成了phantomjs,可以用来抓取js渲染的页面。
缺点:自定义程度低
http://docs.pyspider.org/en/latest/Quickstart/
* Scrapy
优点:自定义程度高,比 PySpider更底层一些,适合学习研究,需要学习的相关知识多,拿来研究分布式和多线程等等是最合适不过的。
缺点:非分布式框架(可以用scrapy-redis分布式框架)”
“pyspider的优点是简单,立刻就能上手,脚本编写规则。懂了的话,一小时写甚至可以写十多个爬虫。
scrapy的优点是自定义程度高,适合学习研究爬虫技术,要学习的相关知识也较多,故而完成一个爬虫的时间较长。”
pyquery: a jquery-like library for python — pyquery 1.2.4 documentation
【总结】
后来自己发布在:
pyspider 和 scrapy 比较起来有什么优缺点吗? – 知乎
中的:
PySpider:简单易上手,带图形界面(基于浏览器页面)
一图胜千言:在WebUI中调试爬虫代码
Scrapy:可以高级定制化实现更加复杂的控制
一图胜千言:Scrapy一般是在命令行界面中调试页面返回数据:
“一个比较灵活的,可配置的爬虫”
没猜错的话,你所谓的,灵活和可配置,其实就是在爬取各种url之前和之后,做一些相关的配置和处理,随便举例,加上不同的User-Agent,传递额外参数,指定爬取频率等等,这些配置,PySpider都支持的。
建议:
对于普通的爬虫,去爬你要的数据,PySpider已经足够你用了。
- 除非有其他高级的特殊需求,再考虑用Scrapy
转载请注明:在路上 » 【整理】pyspider vs scrapy