为啥推荐使用RSS feed

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥推荐使用RSS feed相关的知识,希望对你有一定的参考价值。

参考技术A 为什么推荐使用RSS feed

从儿时的信息匮乏年代到如今的信息爆炸年代,不过十年而已,但切身的感受是对信息认知的深度大大不如从前,各种信息客户端清一色的是标题党,各种美图、爆图吸引眼球,高质量的信息被淹没在其中,我们改如何甄别出优质的信息呢?

我分享的技巧是使用RSS——Really Simple Syndication(真正简易联合),让你可以把控信息的输入,而不是被动接收信息。它的主要作用如下:

1、有选择地浏览您感兴趣的以及与您的工作相关的新闻;

2、把需要的信息从不需要的信息(兜售信息,垃圾邮件等)中分离出来;

3、创建自己的新闻频道,并将之发布到因特网。

如何使用RSS feed

使用RSS feed分为手机端和电脑端,适用于不同的场景。对应的安装包我会放在360网盘中。

手机端

经过对不同软件的比较,建议使用inoreader的服务,稳定可靠且无需翻墙便可以查看订阅的境外信息源。

点击链接http://sspai.com/27576,可查看具体使用教程。另外feedly也可选。

PC端

推荐且只推荐FeedDemon,这一个稳定可靠的RSS订阅工具,便于整理收藏修改信息。

安装包链接

https://yunpan.cn/ckgJVvmbwXFqi 访问密码 1fd9

优质订阅源推荐

拓宽知识类

知乎每日精选(强烈推荐):http://www.zhihu.com/rss

知乎日报(非常宝贵的源):http://feeds.feedburner.com/zhihu-daily

果壳网(科普生活):http://www.guokr.com/rss/

Matrix67(数学爱好者):http://www.matrix67.com/blog/feed.asp

战隼的学习探索(效率生活):http://feed.read.org.cn/

新闻资讯类

联合早报国内:http://zaobao.feedsportal.com/c/34003/f/616930/index.rss

译言精选:http://feed.yeeyan.org/select

南都周刊:http://www.nbweekly.com/rss/smw/

美文日赏:http://meiwenrishang.com/rss

IT资讯类

36氪:http://feed.36kr.com/c/33346/f/566026/index.rss

小众软件:http://feed.appinn.com/

异次元软件世界:http://fullrss.net/a/http/feed.iplaysoft.com/

RSS源搜索

http://ctrlq.org/rss/ 这是一个强大的引擎

我的RSS订阅

从我订阅的RSS中导出的订阅文件,文件名为Inoreader Subscriptions 20160909.xml , 格式为XML,可以直接导入

进上述RSS阅读器中。

我也保存在云盘中了。

Logstash:导入 RSS feed 数据

在实际的使用过程中,我们有时希望正对 RSS 的数据来进行导入并进行搜索。在现实的许多微服务中,有很多的数据是根据 RSS feed 的形式来提供的,比如我们常见的点评网站等。那么我们有没有办法把这些数据导入到 Elasticsearch 并进行搜索呢?答案是使用 Logstash 所提供的 RSS input plugin。在今天的文章中,我将使用一个例子来进行展示。

我们首先找到一个 RSS feed 源。在 Elastic 的官方网站中,我们可以看到这样的一个页面 elastic.co/blog。我们打开这个页面:

点击上面的 RSS:

在上面,我们可以看到 RSS 的响应结果。它里面含有 title, description 等信息。这些我们可以使用 RSS input plugin 来进行提取。

 

安装

由于 RSS input plugin 不是 Logstash input plugin 中的一个,我们必须进行手动安装。如果你想知道 Logstash 自带的 input plugin,你可以使用如下的命令:

./bin/logstash-plugin list --group input

上面的命令显示:

logstash-input-azure_event_hubs
logstash-input-beats
└── logstash-input-elastic_agent (alias)
logstash-input-couchdb_changes
logstash-input-elasticsearch
logstash-input-exec
logstash-input-file
logstash-input-ganglia
logstash-input-gelf
logstash-input-generator
logstash-input-graphite
logstash-input-heartbeat
logstash-input-http
logstash-input-http_poller
logstash-input-imap
logstash-input-jms
logstash-input-pipe
logstash-input-redis
logstash-input-rss
logstash-input-s3
logstash-input-snmp
logstash-input-snmptrap
logstash-input-sqs
logstash-input-stdin
logstash-input-syslog
logstash-input-tcp
logstash-input-twitter
logstash-input-udp
logstash-input-unix

RSS input plugin 显然是不在里面。我们可以使用如下的命令来进行安装:

./bin/logstash-plugin install logstash-input-rss
$ ./bin/logstash-plugin install logstash-input-rss
Using JAVA_HOME defined java: /Library/Java/JavaVirtualMachines/jdk-15.0.2.jdk/Contents/Home
WARNING, using JAVA_HOME while Logstash distribution comes with a bundled JDK
Validating logstash-input-rss
Installing logstash-input-rss
Installation successful

一旦安装成功,我们再次使用上面的 list 命令来进行查看,我们会发现 logstash-input-rss 会列入其中。

 

导入 RSS feed 数据

接下来,我们使用上面安装的 RSS input plugin 来导入 https://www.elastic.co/blog/feed 中的数据。我们首先在 Logstash 的安装根目录下创建如下的配置文件:

logstash.conf

input {
  rss {
    url => "https://www.elastic.co/blog/feed"
    interval => 120
    tags => ["rss", "elastic"]
  }
}

filter { 
  mutate { 
    rename => [ "message", "blog_html" ] 
    copy => { "blog_html" => "blog_text" } 
    copy => { "published" => "@timestamp" } 
  } 
  mutate { 
    gsub => [  
      "blog_text", "<.*?>", "", 
      "blog_text", "[\\n\\t]", " " 
    ] 
    remove_field => [ "published", "author" ] 
  }
} 
 
output {
  stdout {
    codec => rubydebug
  }

  elasticsearch { 
    hosts => [ "localhost:9200" ] 
    index => "elastic_blog" 
  }
}

在上面的 input 部分,我们定义了 rss。它的 url 是 https://www.elastic.co/blog/feed。interval 为 120,也就是 120 秒。每隔两分钟运行一次。同时我们添加了一下我们想要的 tags 便于我们的数据搜索。在 filter 部分,我们把 message 重新命名为 blog_html,并同时对字段进行了复制。在 mutate 的部分,我们把所有的 <> 括号里的内容都置换为“”,也就是去掉。同时,也置换 \\n\\t 这样的字符为空 “ ”。最后,我们删除 published 及 author 字段尽管删除 author 字段是不必要的。

我们在 Logstash 的安装目录下运行如下的命令:

./bin/logstash -f logstash.conf

我们在 console 中可以看到:

我们可以看到在 blog_text 中,那些 <> tag 里的内容都被去掉了。

我们可到 Elasticsearch 中查找索引 elastic_blog:

GET elastic_blog/_count
{
  "count" : 20,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  }
}

我们甚至可以对它进行搜索:

 

再过两分钟后,我们再次重新查看被导入的数据:

这次,我们看到 count 变为 40,也就是第一次 20 的一倍。这是由于我们每隔2分钟去重新读取一次数据。如果我们再接着等两分钟,那么数据就会变为60:

好了,在今天的练习中。我们讲述了如何使用 Logstash RSS input plugin 来导入 RSS feed 数据。希望对你的工作有所帮助。

以上是关于为啥推荐使用RSS feed的主要内容,如果未能解决你的问题,请参考以下文章

RSS Feed Generator缓存使用清漆

c#使用Database MVC中的数据创建Rss-Feed

如何在 iOS 上使用 Swift 将 1 个以上的 RSS Feed 解析并合并为一个 Feed

JavaScript 使用ajax / jquery解析wordpress RSS feed

如何使用 RSS Feed URL 构建 Intent 以打开 Podcast 应用程序?

为啥 iTunes Store 评论 RSS 提要有时不返回任何结果?