Git Product home page Git Product logo

wechat-fanfou-daily's Introduction

「饭否每日精选·日历」微信小程序





扫码访问

上面提供的 QRCode 扫描到达的对应的是分支中 v1(线上版本),v2 的版本提交之后没有通过审核,因为个人开发者牵扯到类目问题,在开发者论坛上做过一次反馈,最终还是没啥用。



重要的前言

Profile 中的:Vue-Fanfou-DailyWechat-Fanfou-Daily, 作者自己把它们两个作为学习 Vue.js 和微信小程序的练手项目,最早的时候只是拿一些假数据在本地学习两者。后来,作为一个多年的饭否用户,无意间发现「饭否每日精选」提供 JSON 数据供稿作为 Public API 给第三方使用,于是就鼓捣想试试看,后来就有了这两个项目。

这两个项目除了长得差不多外,同时使用的也是同一个数据源:写了一个简单的爬虫抓取「饭否每日精选」官方数据,然后存到 LeanCloud 上,供两个项目使用。

发布项目到 Github 的时候,考虑到小程序这部分,不想参杂 package.json./node_modules 等在目录中,所以爬虫部分的代码都在 Vue-fanfou-daily 项目中,具体的使用也写在了该项目的 README 中,请参考《首次抓取所有存量数据并存储至 LeanCloud》和《☁️ 部署至 LeanCloud》。

如果在设置爬虫、以及抓取数据存储至 LeanCloud 的过程中有问题,欢迎提 issue。

为什么会有爬虫抓取数据,然后存到 LeanCloud?

微信小程序中所有发出的请求必须是 HTTPS 的,开始制作的时候(2017 年 5 月)「饭否每日精选」官方数据源是没有 HTTPS 支持的,所以当时首要的问题就是搞定数据源 HTTPS,做了点简单的 research 之后决定放在 LeanCloud 上(看了 LeanCloud 官方写的一个使用 LeanCloud 做为数据存储的 TODOs demo)。

升级到 v2

仓库中有两个分支,主要的区别在于爬虫抓取数据存储的姿势不同,所以导致前端获取数据的方式不同:

  • v1.x.x:一条记录 = 一天的数据,包含二十条状态;
  • v2.x.x:一条记录 = 一条状态的数据。

改写爬虫的缘由

有这样一个场景,用户分享出去一条状态(一条精选的详情页),被分享的用户打开页面,这个时候需要首先去请求一整天的状态才能获得其中的目标数据。因为写 爬虫 v1 的时候没有考虑到这个情况,所以实际处理这个「先请求一天的数据,再从中取出一条数据」的代码当时写得很变扭。

所以,年底(2017年)想做点更新的时候,索性从爬虫开始全部做了修改,以至于前台的代码也做了很多更新,于是有了现在 2.0 版本。

感谢

  • 鸣谢 Z 姐(@小脸儿)制作的网站 logo(favicon);
  • 断断续续向 rex 大(@.rex)请教了不少问题,都耐心一一解答,👍;
  • 之前在开发小程序过程中帮助测试反馈的各位小伙伴(奶瓶 @小小小奶瓶 同学发现了很多 bug,尤其感谢)。

相关 blog 文章

  1. 笔记:「饭否精选」微信小程序(一)制作记录
  2. 笔记:「饭否精选」微信小程序(二)爬虫部分
  3. 笔记:「饭否精选」微信小程序(三)小程序开发中遇到的问题

License

MIT License Copyright (c) 2018 Lien

wechat-fanfou-daily's People

Contributors

movii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

obfan guitari

wechat-fanfou-daily's Issues

饭否每日精选历史数据补充

您好,同样为饭否爱好者。

经过分析,饭否官方的接口
http://blog.fanfou.com/digest/json/index.json
最早只保留到 /json/2015-10-05.daily.json 然而经过搜索,在此之前也存在饭否每日精选。

不过没有规律的网址,但是,发现一个不错的信息来源,Google Groups。
https://groups.google.com/forum/#!forum/fanfou-digest

最早可以追溯到2012年3月,至于这是不是最早开始饭否每日精选的日子,我就不得而知了。
http://blog.fanfou.com/2012/03/06/proverbs-328/

使用https://github.com/icy/google-group-crawler 这个项目,完成对Google Groups分析,获得RFC822邮件模式的爬虫。进一步处理后,将RFC822解码转换成HTML形式。

这部分,不知道作者您是否愿意补充到数据库中?如有需要,我可将相关分析后文件上传给您,以免去重复劳动(爬取过程中还是遇到不大不小的问题,还是在原作者的帮助下完成爬取的)

期待您的回复~

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.