python - Scrapy可以用pyspider代替吗?

标签 python web-scraping scrapy web-crawler pyspider

我一直在非常广泛地使用 Scrapy 网络抓取框架,但是,最近我发现还有另一个名为 pyspider 的框架/系统,根据它的 github 页面,它是新鲜的,积极开发和流行的。

pyspider 的主页列出了几个开箱即用支持的东西:

  • Powerful WebUI with script editor, task monitor, project manager and result viewer

  • Javascript pages supported!

  • Task priority, retry, periodical and recrawl by age or marks in index page (like update time)

  • Distributed architecture

这些是 Scrapy 本身不提供的东西,但是,在 portia 的帮助下是可能的(用于 Web UI),scrapyjs (用于 js 页面)和 scrapyd (通过 API 部署和分发)。

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

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

最佳答案

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

  • 蜘蛛永远不会停止,直到 WWW 死了。 (信息在变化,数据在网站更新,spider应该有能力和责任抓取最新数据。这就是为什么pyspider有URL数据库,强大的调度器,@everyage等。)

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

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

  • on_startstart_url
  • token bucket流量控制 vs download_delay
  • return json vs class Item
  • 消息队列与 管道
  • 内置 url 数据库 vs set
  • 持久性与内存中
  • PyQuery + 你喜欢的任何第三个包与内置的 CSS/Xpath 支持

事实上,我并没有过多地引用 Scrapy。 pyspider 和 Scrapy 真的不一样。

但是,为什么不 try it yourself ? pyspider 也是 fast ,具有易于使用的 API,无需安装即可试用。

关于python - Scrapy可以用pyspider代替吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27243246/

相关文章:

python - 发现"No Module name matrix_factorization_utilities"

python - 使用 optparse 或 argparse 使用同一选项处理多个参数

python - Scrapy 不抓取任何页面

python - 如何使用 ItemLoaders 将数据添加到类似字典的项目字段中?

python - 尝试抓取,找回[]

python - 替换缩写列表中的点?

python - python 中的 ARIMA 预测

python - time.sleep() 函数在 Scrapy 递归网络抓取器中不起作用

c# - Xamarin:如何从 WebView 中的页面获取 HTML?

python - Selenium 未加载 TikTok 页面