最近在学微信小程序,其间看了一些和 V2EX 相关的小程序。大部分都是请求官方接口数据。要么无法查看分页数据,要么字段不全(列表页没有点击数量,详情页没有附言等等)
于是我就自己撸了一款 V2EX 小程序,定位是仅用来浏览,不进行发帖和回复的用户。
由于开发的时间比较短,现在只开发了三个页面。待所有功能完善后,会发布并将代码开源。
现有功能:
1、登录
2、分页查看数据
3、详情页可查看附言
后续功能:
1、查看所有节点
2、查看某个节点下的主题(可分页查看)
2、个人中心
3、查看历史访问记录
4、签到
5、退出登录
6、...
设计思路:
1、登录功能主要是为了查看分页功能而设计的。小程序的 wx.request 无法设置 referer,而 V2EX 的所有 POST 请求都会验证 referer,所以用户登录时,会经由云函数修改 referer 后将用户信息提交到 V2EX 进行登录
2、数据请求。起初打算将所有的用户请求都发送到云函数,由云函数统一抓取并将 html 解析成 json 后返回小程序端渲染。但是由于云函数执行缓慢,并且用户量多的情况下担心服务器 IP 被封。于是后面将所有 GET 请求,以及解析 HTML 的工作全都放到了小程序端。由于不需要经过云函数进行处理,速度提升了不少。
3、关于 POST 请求。创建主题、回复、登录 等操作都需要 POST 请求,现在能想到的解决方案是搭建一台服务器,将用户的真实 IP 和 POST 请求转发到 V2EX。这样或许可以避免因服务器频繁访问而被封 IP ?
BTW,@Livid 大大,能否多放出一些接口,这样我们就不用这么幸苦去爬了
最后放几张图
登录页
评论界面
主题详情
主题列表页
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.