week07 13.4 NewsPipeline之 三 News Deduper

时间:2022-09-29 06:52:16

week07 13.4 NewsPipeline之 三 News Deduper

还是循环将Q2中的东西拿出来

然后查重(去mongodb里面把一天之内的新闻都拿出来,然后把拿到的新的新闻和mongodb里一天内的新闻组一个 tf-idf的对比)可看13.3

相似度检查 如果超过一定的值 我就认为他是一个老的新闻 丢掉 不插入数据库

吐过相似度低于那个值 我们就认为他是新的新闻 然后插入数据库里面

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

上面是需要的配置信息

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

后边mongodb是支持按照时间范围查找数据的

比如一天 设置一个时间的上界和下界 他们之间的时间设置成1天 那么就可以查出一天内的数据

下界就是昨天的时间戳 上界就是现在的时间

所以要用到datatime

进行处理

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

需要安装

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

最后放到mongodb

week07 13.4 NewsPipeline之 三 News Deduper

验证一下

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

我们将redis 和数据库都清理一下

先清理数据库

week07 13.4 NewsPipeline之 三 News Deduper

将tap-news数据下collections的news下的2条数据删除了

redis清除数据缓存

week07 13.4 NewsPipeline之 三 News Deduper

然后我们从monitor开始 fetcher最后deduper都执行一遍

首先抓

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

然后

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

最后

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

最后呢 我们知道XPATH不是很方便 我们用第三方工具newspaper

安装

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

这个问题的解决 13.5 https://i.cnblogs.com/EditPosts.aspx?postid=9609542

安装后我们需要改一下new_fetcher

week07 13.4 NewsPipeline之 三 News Deduper

newspaper

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

我们来测试一下

我改了 python默认版本 本来默认是python2.7 我改成3.6.5啦 所以执行python2.7的文件要python2 xx.py

具体参考https://blog.csdn.net/hymanjack/article/details/80285400

python2 news_fetcher.py

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

说明是工作的

newpaper不单单只是支持一个源 cnn 他支持多个源 只要你提供api

你可以添加你想要的源 只要api支持

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

这些源的名字不是瞎写的 我们是在api news提供api的那个网站的找的

week07 13.4 NewsPipeline之 三 News Deduper

黑字部分都可以

我们有了这三monitor fetcher deduper 每次都手动命令 就很麻烦 所以 我们还是写个脚本 以后只要一条命令就搞定了

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

pip也要改成pip2

week07 13.4 NewsPipeline之 三 News Deduper

week07 13.4 NewsPipeline之 三 News Deduper

具体看

https://www.cnblogs.com/PoeticalJustice/p/9570352.html

https://www.howtoing.com/how-to-install-mongodb-on-ubuntu-18-04

然后改变他的权限 (变绿)才能生效

chmod +x news_pipeline_launcher.sh

week07 13.4 NewsPipeline之 三 News Deduper

打开之后ctrl+c 结束不了 因为那3个py文件在跑 你可以执行一条命令

week07 13.4 NewsPipeline之 三 News Deduper

来直接结束他

sudo killall python2

以上