Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 皮蜘蛛能代替刮痧吗?_Python_Web Scraping_Scrapy_Web Crawler_Pyspider - Fatal编程技术网

Python 皮蜘蛛能代替刮痧吗?

Python 皮蜘蛛能代替刮痧吗?,python,web-scraping,scrapy,web-crawler,pyspider,Python,Web Scraping,Scrapy,Web Crawler,Pyspider,我一直在广泛使用Scrapywebscraping框架,但最近我发现有另一个框架/系统叫做,根据它的github页面,这个框架/系统是全新的、积极开发的和流行的 pyspider的主页列出了一些开箱即用的支持内容: 具有脚本编辑器、任务监视器、项目管理器和结果查看器的强大WebUI 支持Javascript页面 任务优先级、重试、定期和 按年龄或索引页中的标记重新爬网(如更新时间) 分布式体系结构 这些都是Scrapy本身没有提供的,但是,在(用于Web UI),(用于js页面)和(通过AP

我一直在广泛使用
Scrapy
webscraping框架,但最近我发现有另一个框架/系统叫做,根据它的github页面,这个框架/系统是全新的、积极开发的和流行的

pyspider
的主页列出了一些开箱即用的支持内容:

  • 具有脚本编辑器、任务监视器、项目管理器和结果查看器的强大WebUI

  • 支持Javascript页面

  • 任务优先级、重试、定期和 按年龄或索引页中的标记重新爬网(如更新时间)

  • 分布式体系结构

这些都是
Scrapy
本身没有提供的,但是,在(用于Web UI),(用于js页面)和(通过API部署和分发)的帮助下,这是可能的

只有
pyspider
可以取代所有这些工具,这是真的吗?换句话说,
pyspider
是Scrapy的直接替代品吗?如果没有,那么它涵盖哪些用例


我希望我没有越过“过于宽泛”或“基于意见”的界线。

pyspider和Scrapy有着相同的目的,即抓取网页,但对这样做有不同的看法

  • 蜘蛛死了才停下来。(信息在变化,网站中的数据在更新,spider应该有能力和责任抓取最新的数据。这就是为什么pyspider有URL数据库、强大的调度程序、
    @every
    age
    ,等等。)

  • pyspider不仅仅是一个框架,更是一种服务。(组件在独立进程中运行,lite-
    all
    version也作为服务运行,您不需要Python环境,只需要一个浏览器,关于获取或调度的所有内容都由脚本通过API控制,而不是启动参数或全局配置,资源/项目由pyspider管理,等等。)

  • pyspider是一个spider系统。(任何组件都可以替换,甚至可以用C/C++/Java或任何语言开发,以获得更好的性能或更大的容量)

  • on\u start
    vs
    start\u url
  • 交通管制vs
    download\u delay
  • 返回json
    vs
    类项目
  • 消息队列vs
    管道
  • 内置url数据库vs
    set
  • 持久性vs内存中的持久性
  • +您喜欢的任何第三个包vs内置CSS/Xpath支持
事实上,我并没有从Scrapy那里提到太多。皮蜘蛛和羊瘙痒真的不一样


但是,为什么不呢?pyspider也有易于使用的API,您可以不安装就试用。

由于我同时使用scrapy和pyspider,我建议如下:

如果网站真的很小/简单,请先尝试pyspider,因为它几乎提供了您所需的一切

  • 使用webui设置项目
  • 尝试联机代码编辑器并立即查看解析结果
  • 在浏览器中轻松查看结果
  • 运行/暂停项目
  • 设置过期日期,以便重新处理url
然而,如果您尝试pyspider并发现它不能满足您的需要,那么是时候使用scrapy了。 -根据启动到启动请求进行迁移 -迁移索引页面以进行分析 -将详细信息年龄迁移到详细信息年龄 -将self.crawl更改为response.follow

那你就差不多完了。
现在,您可以使用scrapy的高级功能,如中间件、项目、管道等。

这与基于意见的管道非常接近。我不确定我是否会考虑它。“嗯,谢谢,我很担心。试图添加细节。(至少比这更详细、更具体)。@Amber我想我已经得到了最好的答案。比努克斯是pyspider项目的发明者和维护者。希望这篇文章能成为那些对scrapy和pyspider之间的区别有疑问的人的起点。@alecxe希望能有一份关于你在pyspider方面的经验的报告,因为你在scrapy方面有着更广泛的经验。@chishaku这是个好主意,我想总有一天我会用自己的观察和感受给出答案。谢谢大家!@比努斯:我想看看一个新的网页抓取工具,非常好的工作。但是,为什么不是蟒蛇3呢?Python 2已经过去了,这就是我放弃的原因Scrapy@Jedi我更熟悉Python2.7,pyspider是在两年前用Python2.7首次制作的。我想从我更熟悉的地方开始,重点关注架构。我将使Python3在v0.5.0之前得到支持。看起来您是推荐工具的作者。那很好,但是你可以在这样做的时候添加一个完整的披露说明吗?