【问题标题】:Best Method to Push Data from Scrapy to .Net Application将数据从 Scrapy 推送到 .Net 应用程序的最佳方法
【发布时间】:2020-01-29 14:44:40
【问题描述】:

将抓取的数据从 Scrapy 爬虫推送到 .Net 应用程序的最佳方法/想法

设置:

  1. Debian 服务器运行一个 scrapy 服务器
  2. Windows 服务器运行一个 .Net Core 应用服务器

我正在考虑向我的 .Net 核心服务添加一个 RESTful API,并在每次爬虫“完成”事件时从 Scrapy 推送项目数据。

基本上,当抓取新数据项时,我希望从 Scrapy 服务器向我的 .Net 应用程序发送某种“推送通知”。

在 scrapy 中调用外部 API 的最佳位置是什么?

【问题讨论】:

    标签: c# .net scrapy screen-scraping asp.net-core-signalr


    【解决方案1】:

    您有多种选择。推送数据确实是最简单的解决方案,但请确保授权您对 API 发出的请求。您可以使用item_scraped signal 调用您对每个已抓取项目的请求。请记住,如果有数百个被抓取的项目,它可能会给您的 API 带来很大压力,这是您应该避免的。您可以等到爬虫完成,然后通过单个请求调用您的 API。一些替代解决方案:

    • 将抓取的项目放入数据库并轮询数据库以获取其他应用程序中的新项目
    • 使用消息队列,如 RabbitMQ、AWS SQS 或 Kafka

    【讨论】:

    • 非常感谢您的建议。刮刀完成后如何推动?这是在scrapy.signals.spider_closed 信号上吗?
    • 这里是一个示例:github.com/scrapy/scrapy/issues/3104 请注意,您有多种选择,也可以使用管道。我建议您探索一下scrapy API并自己进行一些搜索,您会很快找到一种方法来实现您想要的。
    猜你喜欢
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    相关资源
    最近更新 更多