在写公众号自动回复的时候就有想法进一步扩展这一平台的应用,中间断断续续写了几个爬虫,这两天把流程整理了一下,做了一个纯 Python 版本的 Hacker News 🐍🐍🎉🎉,所谓纯 Python 是指只收集、分享与 Python 有关的链接!
技术分享的网站有很多,每天涌入的信息也越来越多,我希望可以把筛选信息的工作交给程序。考虑到版权等问题,网站只保留了链接信息,不抓取全文;用户登录只对接了 GitHub 登入,域名没有备案,所以国内服务大部分不可用。
目前只完成了首页和收藏等基本操作,但是我对是否有人真的会去读收藏过的文章保留怀疑态度,相比于 Read-It-Later 我更愿意相信 Read-It-Now-Or-Never 😀,当然还是会继续完善网页,包括加入更多数据来源。
除了爬虫之外暂时开放了一个简单的分享入口,就是在公众号中回复 2+链接:
(说明:由于个人公众号无法获取用户数据,因此无法署名)
网站到现在可能连半成品都算不上,但蚂蚁虽小五脏俱全,基本功能是完善的,数据信息来源也是可靠的(但不保证正式完成前不会清空数据库😜),欢迎使用、测试甚至捣乱。这篇文章的主要目的是简单介绍一下生产过程和技术栈的简单笔记,除了爬虫和一些敏感信息以外,网站全部代码开源。
服务端依然是基于 Tornado + Motor + MongoDB 的标配。
爬虫本来想用 Scrapy ,后来觉得没有必要,但是其架构还是值得借鉴的:将不同来源的爬虫划分为不同模块,公用模块处理请求和入库等操作;还是习惯用正则匹配,更精准方便;最爱前后端分离的网站,用正确的姿势打开后,json.loads()
就搞定了(好像我写的网站也是这样,不过爬人者必被爬,这也算一种荣幸吧🙃)。
前端真是让人又爱又恨,显然我不想再在一个小项目上一个人吭哧吭哧啃 React 了,国产的 Vue 似乎是个不错的选择,但我最终选择了更短小精悍的 Riot !
大家最初排斥 React 将 HTML 和 JavaScript 混在一起的做法,认为这是一种倒退,但是 Riot 不但继承了这一反骨,甚至将其发挥到极致。不再需要额外的工具,无需容忍编译,不再忍受啰嗦到像 Android 一样的语法, Riot 做到了像 Python 一样简练的语法同时兼容了 React 的思想,简直功德无量!事实上如果你有过 React 的经验只要看一下 Riot 版本的 TODO App 就知道该怎么做了,简直是小项目的不二之选。
感谢 Material Design Lite ,感谢 Material Icons ,感谢 Devicons ,感谢 BootCDN ,让我尽可能避免跟 CSS 打交道。
哦对了,地址是:https://pyhub.cc。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.