Python 爱好者专用技术头条

2016-05-06 22:58:20 +08:00
 irainy

又做了新玩具!

在写公众号自动回复的时候就有想法进一步扩展这一平台的应用,中间断断续续写了几个爬虫,这两天把流程整理了一下,做了一个纯 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


4453 次点击
所在节点    Python
8 条回复
kslr
2016-05-06 23:34:29 +08:00
也许你可以看看湾区日报得到点想法
helloSwift
2016-05-06 23:43:42 +08:00
图像好评
hanfeng3015
2016-05-06 23:56:33 +08:00
good
linkbg
2016-05-07 01:08:50 +08:00
点赞,思路是对的。希望坚持。
neoblackcap
2016-05-07 01:15:44 +08:00
其实按照 React+flux 的设计思想,压根就不存在 html+js,你看到的是 JSX 。而且那部分应该完完全全根据传入的 property 参数来渲染。总的来说,并没有逻辑跟视图混在一起。
irainy
2016-05-07 02:44:33 +08:00
@neoblackcap 我说的是语法上是混在一起的,在逻辑代码里面掺入 HTML tag ,这(在有些人看来)是一件很可怕的事。当然从本质上来说它们是不可能混在一起的,因为它们是不可能混在一起的。
guoliang
2016-05-07 09:01:15 +08:00
同意 @kslr ,楼主应该去观摩一下湾区日报。 只有微信订阅?是不是应该考虑一下那些非微信读者该怎么阅读?
irainy
2016-05-07 10:53:03 +08:00
@kslr
@guoliang 谢谢建议,已观摩!

@guoliang 跟微信无关啊…访问网站就行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/276868

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX