美文网首页
自己烧制RSS

自己烧制RSS

作者: yanndy | 来源:发表于2018-01-28 10:29 被阅读0次

周末大雪,在家研究了下如何烧制RSS。首先RSS不是一道菜,如果不了解RSS的可以度娘一下。这里简单解释一下,个人理解RSS主要是简化信息,不需要直接访问相关的网站就可以收集到需要的信息。

一个例子,投资股票的人经常关注雪球上所买股票公司的信息。一种方式访问雪球,然后通过搜索相应的公司来获取信息;另外一种是能通过RSS阅读工具直接访问雪球的信息,不需要直接登录雪球网站。

下面介绍的就是一种使用foxmail RSS来通过订阅RSS 直接访问雪球文章的方法。

RSS的原理很简单,就是将网站的信息使用xml格式重新格式化一份,剔除其他无关的,只保留简单的信息,避免广告等信息的干扰。并且将自己关心的信息集中在一个界面中访问,每天看完工作邮件后,顺便看下自己订阅的关注的信息,非常方便。

RSS从1995年诞生到现在命运波折,很多RSS阅读器都相继关闭,究其原因RSS对于网站内容提供商没有好处(用户可以不用经常直接访问网站了,特别是广告没人看了,少了收入),对RSS阅读器开发者也没多少盈利点,只有对用户来说有用处。所以现在很多站点都不提供RSS服务。那么我们要想利用RSS订阅信息,只能靠自己想办法,饭店越来越少,只能自己烧菜吃了

现在用的比较多的有feed43,能够通过简单定制生成自己rss信息源。烧制过程比较简单,试用后感觉灵活性不足,于是自己研究了一下,简单写了一个工具,理解了原理后续自己可以随意扩展,方便很多。定制化强的东西,自己的用的才趁手

基本原理是,通过爬虫程序爬到相应的信息,然后自己组装RSS信息源。借助python强大的开发生态,整个代码不足百行

爬虫使用的是scrapy,组装rss信息源使用的是PyRSS2Gen。比较简单,直接上代码:

# _*_ coding:utf-8 _*_
import sys
import scrapy
from scrapy.http import Request
import json
import PyRSS2Gen,datetime,re

class GetXueQiuNewsSpider(scrapy.Spider):
    name = "getXueQiuNews"
    allowed_domains = ["[xueqiu.com](http://xueqiu.com/)"]
    def __init__(self, corpName=None, rssFileName=None, *args, **kwargs):
        super(GetXueQiuNewsSpider, self).__init__(*args, **kwargs)
        self.corpName = corpName
        self.rssFileName = rssFileName
        self.start_urls = [
        "[https://xueqiu.com/statuses/search.json/?sort=relevance&source=all&q=](https://xueqiu.com/statuses/search.json/?sort=relevance&source=all&q=)"+self.corpName.decode('gbk')+"&count=10&page=1"
    ]
    
    def parse(self, response):  
        contents = json.loads(response.body_as_unicode())  
        title_pre =contents['list'][0]['title']
        a1 = [re.compile(r](http://re.compile(r/)'\<.*?\>')
        title = a1.sub('',title_pre)
        items = []
        for content in contents['list']:
            title_pre = content['title']
            a1 = [re.compile(r](http://re.compile(r/)'<.*?\>')
            title = a1.sub('',title_pre)
            target = content['target']
            link = "[https://xueqiu.com](https://xueqiu.com/)"+target
            description = content['text']
            pubDate = content['timeBefore']
            item = PyRSS2Gen.RSSItem(title,link,description,pubDate)
            items.append(item)
        rss = PyRSS2Gen.RSS2(  
            title =  u"雪球-" + self.corpName.decode('gbk'),  
            link = self.start_urls[0],
            description = u"雪球和"+self.corpName.decode('gbk')+u"相关的内容",  
            lastBuildDate = datetime.datetime.now(),
            items = items)
        if self.rssFileName is None:
            self.rssFileName = "default.xml"
        rssFileName = "[d://mine//infospy//rss//](file:///d://mine//infospy//rss//)"+self.rssFileName
        rss.write_xml(open(rssFileName, "w"))

上面的代码根据实际情况,修改rssFileName存放的路径。
1、使用 scrapy crawl getXueQiuNews -a corpName="工商银行" -a rssFileName="xueqiu-icbc.xml" ,可以生成一个雪球工商银行的rss源,同样可以换个关键词制定其他rss信息源。
2、到生成的xml rss文件的目录中执行 python -m SimpleHTTPServer 8000,在本地起一个http服务,便于rss阅读器订阅和访问
3、以foxmail的rss阅读工具为例,订阅这个rss源。



4、可以将 scrapy crawl getXueQiuNews -a corpName="工商银行" -a rssFileName="xueqiu-icbc.xml" 做成一个定时任务,如1小时执行一次,那么这个信息源就会每小时更新一次,在rss阅读器中就能定时的更新了。
5、如果自己有公网服务器,可以部署到公网上就可以随时随地访问了。

这个方式不依赖任何的外部服务,全部自助,并且可以比较方便的扩展,可以将自己关心的信息都烧制成rss,借助爬虫自动的获取信息,让自己关心的信息尽在掌握。

最后想说的, Life is short, you need Python ,一点没错!使用python看似复杂的问题分分钟钟搞定!

参考资料:

1、scrapy知识:https://scrapy.org/

相关文章

  • 自己烧制RSS

    周末大雪,在家研究了下如何烧制RSS。首先RSS不是一道菜,如果不了解RSS的可以度娘一下。这里简单解释一下,个人...

  • RSS插件

    # 1测试 Tampermonkey inoreader full rss 简书RSS烧制 site info {...

  • 简书 RSS

    发现了一位叫 hutushen222 的热心网友帮简书烧制的 RSS,感谢这位网友,为大家提供了便利。 RSS生成...

  • 20190928 RSS被谁颠覆,又被谁超越了?RSS的未来在哪

    20190928 RSS被谁颠覆,又被谁超越了?RSS的未来在哪里? RSS是一种信息聚合工具,可以把自己关注的多...

  • 关于RSS现状的思考

    RSS现状: 关于RSS这块,我一直都在思考,或许对于现在普遍意义的「大众」来说,RSS的门槛确实很高,需要自己找...

  • 给简书增加一个RSS

    简书官方没有 RSS 功能,所以自己简单开发了个应用,能给某个用户产生一个 RSS 地址。应用官方地址是 rss....

  • RSS定制个人高质量信息流

    RSS定制个人高质量信息流 RSS 信息 OUTLINE 什么是RSS? 有哪些优质RSS阅读器? 优质RSS源推...

  • rss VS flomo

    自己一直有在手机上 RSS 订阅的习惯,如果关于 RSS 还不太了解,可以查看我之前写的一篇文章 什么是 RSS ...

  • RSS 阅读器简易使用指南

    什么是 RSS,以及为什么要用 RSS RSS (Rich Site Summary; originally RD...

  • 少数派上关于RSS的优秀文章

    rss的搜索结果 - 我的 RSS 和稍后读使用姿势 RSS,稍后读,及知识体系构建 如何为知网期刊生成RSS? ...

网友评论

      本文标题:自己烧制RSS

      本文链接:https://www.haomeiwen.com/subject/wxyaaxtx.html