这样的爬虫思路要怎么设计?? 财富值11

2016-10-22 19:36发布

我有一个mongodb的数据库.

而有一只爬虫,每天往这个数据库里面抓内容加进去....
而另外一只爬虫,是负责给这些数据打标签,就是抓进去的数据,判断是垃圾数据,就打上垃圾,判断是好的数据,就打上优质 ,类似这种思路

而我现在有另外3-4个网站,网站的文章数据都是来自这个数据库,目的就是发现这个数据库只要有新的并且标签带有优质的数据,就马上发布到网站上...

那么我在设计爬虫的时候,如何做到最高效?
就是边采集的时候,边打标签,边发布数据??

我现在基本就是这样的流程:

 for 采集数据 in 采集数据集合:     给采集数据打上标签         if 优质数据             发布到网站上

不知道这样的伪代码大家看得懂吗?
但是用python 是线性执行的.可能效率比较差( 因为打标签 和发布的网站时间比较慢 )
要怎么设计呢?
有点乱,能看得懂的应该都是比较懂我的人

付费偷看设置
发送
5条回答
冷冰寒 - 这个人很懒,什么都没留下
1楼 · 2016-10-22 19:58.采纳回答

有问题可以继续讨论。

订阅了 "good_content" 的系统收到该事件,就会自动更新内容。具体是用什么来实现发布订阅模式,方法有很多。如果是在一个项目中,自己写代码实现一个就行了;如果不是一个项目,就用消息队列,或者Redis也有提供发布订阅的功能(据说不太好用,哈哈~)。

发布订阅模式,有优质内容就发布一个 "good_content" 事件,然后其他的网站订阅这个事件,这样不管你有多少网站,整个系统都是松耦合的。

首先,不用两只爬虫,一只爬虫爬去内容的时候,就可以分辨出是优质还是劣质内容,是的话,就直接发布 "good_content" 事件,你的爬虫系统就这么简单。

高估了自己的数据量,低估了python性能。
不用设计,花半天看scrapy文档,官方例子流程就符合你了。

一周热门 更多>