起因

我注册SegmentFault账号是在2016年12月,但是正式开始参与社区贡献是2017年9月。那时候我刚刚毕业,参加工作。到现在已经半年了。

当时只是想着帮助别人,并且通过别人提出的问题和回答来积累自己实际经验。毕竟靠每天工作得到的项目经验太少了,个人成长实在有限。

以前觉得1000声望很难得,更不用说能上排行榜的5位数声望了。但是半年来,养成积极帮助他人的习惯后,我发现自己不知不觉也跨过了1000声望的门槛。从个人角度来讲,我想做点事情来纪念一下。

上周,我翻译了一篇关于react-vis的文章。而我想起以前一直对爬虫很感兴趣,当然现在没兴趣了。总之,这两个因素让我决定爬一爬自己通过回答得到的声望。没有文章被赞,没有文章被收藏等声望,就是单纯的,回答、回答被赞和回答被采纳。

实现过程

要实现这个项目,需要先分解需求,然后选取技术栈,最后发布。

分解需求

  1. 爬取SF页面
  2. 将得到的数据存入json,放在gitpage上
  3. 利用fetch api获取该json
  4. 根据得到的数据使用react-vis生成柱形图,x轴为时间,y轴为声望数,每一个x点分别有3个长方形,代表问答、被赞和被采纳。

技术栈

  1. node-crawel + cheerio:解决需求1
  2. react + react-vis:解决需求3、4
  3. jest:测试代码单元

json存储格式

{answer:{"2018-3-20":1},answerBeHonored:{"2018-3-20":10},answerBeAdopted:{"2018-3-20":15}
}

关键思路

  1. 需要将SF声望记录里的x小时、x天前转成格式为yyyy-MM-dd。这个只需要判断不同情况,然后根据当天减去每天的毫秒数或每小时的毫秒数得到的毫秒数生成一个Date对象。然后再转换格式。
  2. 有的操作可能被用户取消,但仍保留在声望记录上。这时要通过判断是否存在[已取消]来跳过处理。
  3. 利用react-vis生成柱形图时,x坐标轴的类型要设置为oridinary

效果展示

最终效果
最后算了一下大概553点声望来自问答。看来通过文章,尤其是翻译文章,得到的声望占的水分挺大的。

总结

我不了解Node.js,之前没听说过node-crawel,所以纯粹是一时兴起尝试了一下,有一些坑,但最终还是解决了。满打满算一共是花了4.5小时,主要是尝试使用crawel以及测试各单元功能。

爬虫的代码不打算开源,一是因为很简单,照着教程写没什么问题。二是觉得爬虫这个东西或多或少有点危害?姑且算是我不开源的理由之一吧。

大概就是这样了,还是很感慨能够跨入1000声望呢,下一个目标大概是5000声望,继续努力吧。

参考文章

  1. 使用node-crawler和jsdom完成爬虫
  2. Node Crawler:强大的Node开源爬虫
  3. react-vis:一个数据可视化库
  4. react-vis文档

达到1000声望以后相关推荐

  1. vs声望过低不能进入房间_科技的伏都教声望:不公平且无根据

    vs声望过低不能进入房间 Ask any engineer the question, "is technology disruptive", and the answer wil ...

  2. cos大乱斗服务器维护,《COS大乱斗》服务器数据互通公告

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 各位亲爱的COSer: 为了给大家提供更加优质的游戏环境,增加游戏乐趣,提高游戏互动性,我们将会在2016年11月7日对COS大乱斗混服[S4-261]区 ...

  3. northgard如何修改服务器,北加尔图文攻略 Northgard 上手指南 + 全部落 + 全建筑

    by球球May.15,2017 <北加尔>图文攻略,Northgard游戏指南教程攻略(含"上手指南""全部落/建筑物/村民职业/典籍介绍"&quo ...

  4. 北境之地服务器没有响应,北境之地基础问题解决方法

    常规问题怎么解决?很多才入门的小伙伴一定会被前期一些游戏问题所难住吧,今天小编给大家带来北境之地基础问题解决方法,需要的小伙伴快来看一下吧. 推荐阅读: 北境之地基础问题解决方法 如何胜利(全胜利条件 ...

  5. 北境之地服务器没有响应,《北境之地》基础问题解决方法 常规问题怎么解决?...

    常规问题怎么解决?很多才入门的小伙伴一定会被前期一些游戏问题所难住吧,今天小编给大家带来北境之地基础问题解决方法,需要的小伙伴快来看一下吧. 推荐阅读: 北境之地成就完成方法一览 北境之地战役重点关卡 ...

  6. 成为CTO,6个月被老板干死,我损失了1000万

    作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) K哥曾担任某独角兽公司技术负责人,那会儿大概35岁左右,坦白讲那个时候我在自我认知.行业视野.以及岗位 ...

  7. 想不想修真鸿蒙之礼奖励,想不想修真血浮屠收益有多少 声望掉落奖励一览

    在想不想修真中,有了狗或者猪之后就能刷血浮屠了.而血浮屠是一个专门获取声望的地方,不过有的玩家表示血浮屠的性价比不高,那么究竟值不值得刷呢?下面就让我们一起来看看想不想修真血浮屠收益有多少吧. 很多玩 ...

  8. Stackoverflow 声望和节制

    什么是声望(reputation)?我是怎样获得(或失去)它的? 声望是一种粗略的测量,用来表示社区对你的信任度.通过让别人相信你知道自己正在讨论什么来获得.对网站的基本使用,包括问一个问题,回答,建 ...

  9. Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10

    问题描述: com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10at com.alibab ...

最新文章

  1. Vue 环境搭建(win10)
  2. python怎么输出图像测试_python pyautogui-不检测图像时的位置打印问题
  3. OpenCV差分二值化的实时场景文本检测的实例(附完整代码)
  4. 数据结构学习官方代码
  5. [乐意黎原创] cuteftp 9 显示中文乱码
  6. 线性规划中的单纯形法与内点法(原理、步骤以及matlab实现)(二)
  7. GCC Spec Files
  8. 最齐全的地面贴图素材,速来收藏
  9. 游戏外挂检测和反检测
  10. CDliux--minidwep 无线密码渗透测试
  11. php 创建临时id_使用PHP创建ID3标签阅读器
  12. 七牛云存储使用经历到底怎么样
  13. python绘画海贼王_Python爬虫之爬取海贼王全彩漫画图片
  14. ARCGIS 栅格转点操作步骤
  15. Weakly Supervised Instance Segmentation using Class Peak Response
  16. 360 ie8兼容模式 网页兼容问题
  17. 关于CClientDC与CPAINTDC,以及GetDC与GetWindowDC的用法。
  18. jzoj 3426. 封印一击 (Standard IO)
  19. 应广单片机系列MCU
  20. 戴尔7060安服务器系统,戴尔7060装win7系统教程和BIOS设置方法(USB驱动可用)

热门文章

  1. PHP情侣头像源码+基于Typecho框架
  2. c/c++中保留两位有效数字
  3. IE老是弹出Visual Studio 实时调试器的解决办法
  4. 移动端1像素问题及解决方案
  5. redis RDB设计与实现
  6. 打印机打印时出现“打印队列问题” 解决方案
  7. AQS源码二探-JUC系列
  8. Android 实现浏览器跳转APP应用,网页也可以跳转APP
  9. 深蓝学院-手写VIO作业-第一章
  10. 高并发高可用处理大数据量