2019 年末一场疫情突如其来,短期结束的希望破灭,新冠病毒疫情持续至今。原本我本能似的反感电影中诸如“非典”的宏大叙事,不想我们每个人都受大环境影响。无论如何,我需要跟踪疫情发展以及当地防疫政策。
根据经验,订阅当地发表资讯的微信公众号是最好的。比如长沙市有“长沙发布”。但我并不想用微信,更不想将微信当作我的主要信息来源;另一方面,“长沙发布”不仅发布疫情信息,也夹杂其他污染信息流的推送。所以,我还是想通过其他方式订阅相关动态,可以借助一些技术手段。
Google Alerts
Google Alerts 借助全世界最好的搜索引擎 Google,帮你关注指定关键词的新结果,生成并推送电子邮件。可以选择频率:有新动态时、每天最多一次、每周最多一次。还可以选择来源是新闻、博客、在线文章,或者限制结果语言等等。不同于新闻订阅,关键词结果来源于整个(表层)互联网,所以能关注的不只是传统新闻事件。
我在闪思写道,你要是关注广州新冠相关动态,可以加入关键词“广州 新冠”。经实际测试,Google Alerts 的效果差强人意。当地疫情不太严重之时,也会推送不甚相关、无关紧要的搜索结果,我目前设定每天一次作为辅助。
RSS
RSS 是一种 Web 的开放订阅标准。如果我们有 RSS 源,那就可以用相关客户端订阅它。然而,国内有关部门网站很少支持 RSS,于是我们可能得自己动手。
在此介绍 RSSHub,“一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。”内置规则已经能够给很多网站生成 RSS 源,包括传统媒体、新媒体以及部分政府网站。假如掌握编程技能,可以自行扩展相关支持。注意这个方案需要自己的服务器,官方网站仅供演示而没有可用性保证,实时性也不太强。
你也许想,应该为卫生健康委员会(卫健委)官网生成 RSS 源,这当然没错。不过我推荐一个 Telegram 频道:2019-nCoV疫情实时播报🅥,这里整合了全国各地疫情动态。虽然看上去是人工发布,但其内容完整,标注有可靠来源,更新也算及时。如果你使用 Telegram,也许可以直接订阅,当然这又出现本文开头所讲的信息流污染问题,夹杂着不感兴趣的其他地方的信息。
所以我的方法是用 RSSHub 为该频道生成 RSS 源,然后用 RSSHub 本身的规则筛选本地信息。频道推送整理得相当好,以至于每条信息都为我们打好了 tag(标签)。于是我们在筛选的时候加上井号 #,比如筛选长沙市信息用“#长沙”而非“长沙”,更加精确。
RSSHub 部署方法不在本文讨论范围内,我只提一下筛选的事情。根据文档,我们在 URL 后加上 filter
参数用于过滤。这里注意,根据 HTTP 规范,URL 参数值应当用 URL 编码(urlencode);不仅汉字应该如此,井号也是。(每个值的全部内容都需要编码,你可能看到英文内容不需要编码,其实可以理解为英文的编码后结果与编码前相同。)于是对于“#长沙”,应该这么写:
http://rsshub.example.shansing.net/telegram/channel/nCoV2019/?filter=%23%E9%95%BF%E6%B2%99
%23
便对应 #
。井号不编码的话基本上会被识别成锚点,不被算作 filter
的值,不会传送到服务器,与预期行为不符。一定注意。
在浏览器测试好以后,就可以添加到 RSS 阅读器了。RSS 阅读器多种多样,有网页版也有客户端。我为时效性考虑,决定还是利用 Telegram bot。相关 rss bot 程序可以在 GitHub 搜索,或者也没必要自建,Telegram 上已有现成的。如此每条新信息便能即时推送,而我订阅的其他 RSS 源照例每天定时不定时浏览就好。
你也许还想以 RSS 的方式订阅微信公众号。RSSHub 虽然也支持,可用性存疑。微信平台封闭之极,反爬严格,不适合抓取。实在有需求可以考虑 WeRss 之类的服务,不过需要付费,更新延迟也比较大。
本文权当提供一些思路,抛砖引玉,各位可以灵活发挥。