将数据从 Scrapy 推送到 .Net 应用程序的最佳方法
Best Method to Push Data from Scrapy to .Net Application
最好Method/Idea 将抓取的数据从 Scrapy 爬虫推送到 .Net 应用程序
设置:
- Debian 服务器运行是一个 scrapy 服务器
- Windows 服务器 运行 一个 .Net Core 应用服务器
我正在考虑将 RESTful API 添加到我的 .Net Core 服务中,并在每个爬虫 "finished" 事件中将项目数据从 Scrapy 推送到那里。
基本上我想在抓取新数据项时从 Scrapy 服务器到我的 .Net 应用程序 "push-notifications"。
在 scrapy 中调用外部 API 的最佳位置是什么?
这里有多种选择。推送数据确实是最简单的解决方案,但请确保授权您向 API 发出的请求。您可以使用 item_scraped signal 为每个抓取的项目调用您的请求。请记住,如果有数百个已删除的项目,可能会给您的 API 带来很大压力,这是您应该避免的事情。您可以等到抓取器完成,然后通过单个请求调用您的 API。一些替代解决方案:
- 将抓取的项目放入您的数据库并在数据库中轮询其他应用程序中的新项目
- 使用 RabbitMQ、AWS SQS 或 Kafka 等消息队列
最好Method/Idea 将抓取的数据从 Scrapy 爬虫推送到 .Net 应用程序
设置:
- Debian 服务器运行是一个 scrapy 服务器
- Windows 服务器 运行 一个 .Net Core 应用服务器
我正在考虑将 RESTful API 添加到我的 .Net Core 服务中,并在每个爬虫 "finished" 事件中将项目数据从 Scrapy 推送到那里。
基本上我想在抓取新数据项时从 Scrapy 服务器到我的 .Net 应用程序 "push-notifications"。
在 scrapy 中调用外部 API 的最佳位置是什么?
这里有多种选择。推送数据确实是最简单的解决方案,但请确保授权您向 API 发出的请求。您可以使用 item_scraped signal 为每个抓取的项目调用您的请求。请记住,如果有数百个已删除的项目,可能会给您的 API 带来很大压力,这是您应该避免的事情。您可以等到抓取器完成,然后通过单个请求调用您的 API。一些替代解决方案:
- 将抓取的项目放入您的数据库并在数据库中轮询其他应用程序中的新项目
- 使用 RabbitMQ、AWS SQS 或 Kafka 等消息队列