问题发过来了,老师看一下把

来源:1-1 python分布式爬虫打造搜索引擎简介

鲁智深110

2019-12-15

1、我提供一个api接受url,在推入队列,scrapy-redis监听队列,抓取数据后直接返回给api,不入库。这样搞貌似实现不了返回给接口。

2、还有一个问题,scrapy-redis是不会停止了,如果数据跑晚了怎么通知后端我已经完成了

老师给个思路把!

写回答

1回答

bobby

2019-12-17

  1. 是的,这是两个进程,所以这个之间要实现通信需要有一个消息通信机制。这个消息通信机制比较多,比如使用redis,使用rabbitmq都可以。以及kafka也行,这里最简单的是redis和rabbitmq了,你的api服务直接发送给scrapy-redis之后就一直等着redis或者rabbitmq中是否有数据,scrapy-redis抓取完成以后直接将数据放到redis中,这样就行了

  2. scrapy-redis启动后就不会停止了,如果数据跑完了你也可以采用上面的思路,跑完以后将redis中的一个变量设置为true就行了,这样你的后端服务只管监听这个变量值就行了

0
3
鲁智深110
非常感谢!
2019-12-18
共3条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5795 学习 · 6290 问题

查看课程