惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
B
Blog RSS Feed
美团技术团队
博客园 - 【当耐特】
C
Check Point Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
M
MIT News - Artificial intelligence
aimingoo的专栏
aimingoo的专栏
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 司徒正美
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
N
Netflix TechBlog - Medium
Vercel News
Vercel News
P
Proofpoint News Feed
IT之家
IT之家
I
InfoQ
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
利用 Flask 和 VPS 搭建物流更新自动推送 RSS - 少数派
2016-12-19 · via 少数派

想法

在我数个 Workflow 查快递 项目,或者说更新完成之后,可以说它已经非常完善了。利用非常稳定的 快递100 API,查一条快递的速度不到一秒钟。虽然我知道大多数人使用的是少数派之前推荐过的另一篇查快递方法,在这里我很骄傲的说,我的版本不仅速度和它相当,在界面的美观程度,效率,和功能上都要比它强很多,因此也来做一个小小的广告。

WechatIMG88.jpg

我算是得罪你们一下,不过顶上这个图右边这种毫无修正,直接套数据的真的看不下去... 之前好多人说我做的 Workflow,too long,too complex. 毕竟有一大部分都是在 UI 美化能不长吗。😂

屏幕快照 2016-12-20 下午9.58.11.png

2015 年 12 月我正是因为想到 Workflow 查快递的主意才申请加入 Matrix,到现在已经一年多了。而 Workflow 始终是一种被动的查询方式,查询,查询,你查才会有结果,而不是当物流信息有更新时,自动告诉你,这才是真正方便的物流查询方式。

IFTTT 于前段时间与 Telegram 做了合作,而 IFTTT 一直是支持 Feed 的,很早以前我喜欢用 IFTTT 订阅 Apple 媒体新闻和开发者新闻 RSS,来收取最新的 PR 文章和系统 Beta 更新推送。Momo.Kong 这篇文章讲到了 Telegram 和 Android 合作的一些用法,我脑子一转,为什么不可以用它来做一个查快递的工具呢?

RSS,在许多人眼里是一个已经被抛弃的东西。借用水深云际的话说:在 Google Reader 宣告关闭之后,网络上关于「RSS 将死」的言论一度甚嚣尘上,令人欣慰的是在经历短暂的阵痛期之后,RSS 非但没有死,反而出现了百花齐放百家争鸣的情况。多家 RSS 服务网站迅速崛起,很好的填补了 Google Reader 留下的空白,行业竞争也更趋良性。

屏幕快照 2016-12-19 下午10.33.29.png

一条条物流更新,就如 Feed 一样,或者说新闻,一条一条的随着时间更新,把快递做成 RSS 简直是再适合不过了。在我钻研一阵之后,没有找到较好的 JSON 或者 Dictionary 转 XML 或 RSS 的方法,但是 RSS 格式简单,请看下面的示例:

<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>这是 RSS 的标题</title>
  <link>http://www.example.com</link>
  <description>这是 RSS 的介绍</description>
  <item>
    <title>第一个 Item</title>
    <link>http://www.example.com/item-1.html</link>
    <description>这是第一个 Item 的介绍</description>
  </item>
</channel>
</rss>

如果需要添加多个 Item,只需要在第一个 </item> 之后再加 <item> 即可开始新一个项目,只要使用编程语言的循环语句,就可以轻松手动把简单的来自 快递 100 的 API 数据转换成 RSS 格式。

屏幕快照 2016-12-19 下午10.27.11.png

这里我花费一些时间写了个 Python,它虽然可能并不是最好的工具,不过是我用的比较熟悉的。再使用到了 Python 中的一个库 —— Flask,稍后会讲它的具体用途。运行这个 Python 程序,就可以将 JSON 转换为 RSS 了。通过 XML Document Tree,我们可以清楚地看到每一个 Item 的内容,物流信息和时间。

屏幕快照 2016-12-19 下午10.38.33.png

公网

有了上面的基础之后,我们就要想办法把这个 RSS 放到公网上,这里需要用到各位自己的 VPS,而 Flask 的用途也就在这里体现了。

屏幕快照 2016-12-19 下午10.42.28.pngFlask 可以帮助你把 Python 程序的运行结果直接输出成为网页,有了刚才我们的标准 RSS 文字代码,只需要将它做成一个网页,让别人访问就可以直接得到对应单号的 RSS。安装 Flask 非常简单:

sudo pip install Flask

完成安装后 cd 到你想放 Python 源代码的目录,直接运行 Python 即可:

屏幕快照 2016-12-19 下午10.47.13.png当你看到 Running on http://0.0.0.0:8080/ 就表示已经成功了,根据我的设定端口号为 8080,你也可以直接在 .py 中修改。现在用浏览器访问 http://127.0.0.1:8080/?id=快递单号,你就可以看到输出的 RSS 结果(浏览器可能会进行优化,查看 XML 请打开 "查看源代码")

屏幕快照 2016-12-19 下午10.49.25.png由于我们监听地址是 0.0.0.0,所以此时你的 RSS,也可以说你自己制作的 API 已经从 VPS 映射到全网,那么你只需要使用你自己的 RSS 浏览器输入 Feed 就可以订阅你自己制作的 RSS。

http://你的域名:8080/?id=快递单号

订阅和推送

在这些都完工之后,你只需要在 iOS 使用你喜欢的 RSS 阅读器,或者 IFTTT 你可以直接链接 Feed 创建 Applet 来通过邮件通知你,通过 iOS Notification 通知你,通过 Telegram 通知你,当然,你要是有兴趣可以设置成:当快件更新时,把 Philips Hue 设置成一种颜色,这样你回家看到灯变色了,你就知道你的快件更新了。

屏幕快照 2016-12-19 下午10.54.16.png

在我的 Python 中指定的内容如下,你可以自定义这些参数来个性化你收到的通知内容:

RSS 标题:顺丰快递 199318633030

RSS 链接:https://m.kuaidi100.com/result.jsp?nu=199318633030

Item 标题:10月30日 16:36 已签收,感谢使用顺丰,期待再次为您服务

Item 链接:<同上 RSS 链接>

Item 内容:已签收,感谢使用顺丰,期待再次为您服务

你可以尝试看懂我的 Python 代码直接修改这些参数的内容,所以说接下来就看一下效果图吧:

WechatIMG84.jpeg上图 Telegram;下图 某 RSS 订阅 App

359478.jpg联动 IFTTT 并个性化内容,你可以以你自己希望的格式收到通知:

WechatIMG86.jpeg以上截图均为直接使用真实 API 地址得到的结果,而非使用测试数据使其显示指定内容,所以图中是怎样的,你也会看到怎样的效果~

WechatIMG87.jpegIFTTT 应该是效果非常好的,我个人比较喜欢的方式是 Telegram 的 Superfeedr Bot,少数派有过介绍。或者图中的通过 Feed 更新发送消息到 Telegram 的方式。

开放

和往常不一样的是,一般到文末我就会提供一个可用的地址了,很遗憾,基于 VPS 的安全,隐私性考虑,我并不准备公开我自己的 VPS 地址来给可能混在人群中的存有一丝侥幸心理的人使用,请各位理解。

但是我正在尝试将它封装到 Telegram Bot,使它能以一种安全的形式公开,不过考虑到工程量的问题什么时候能做出来还真是一个未知数。

希望看到文章的各位,如果你们有能力并且愿意帮助我把它变得更好,欢迎在下方评论和我联系,继续把我 20 年专注查快递继续下去。🌚

噢,上面那条 Python 还是会开源的,在这里:https://github.com/junyilou/junyilou.github.io/blob/master/rss-kuaidi.py。简单易懂,根据自己的需要修改,效果更出色。