心路历程:爬虫实战——从数据到产品

栏目: 后端 · 发布时间: 6年前

内容简介:京东链接:经过近一年的辛苦创作、编辑、等待,本书终于出版了。这种感觉有点像是十月怀胎,但没有生育时候的痛苦,只有最后得到的欣喜。现在回忆起去年接到著书的邀请,然后到纠结,再到刚开始痛苦的写作,以及最后成稿后的释然,一切都觉得是一场人生的经历。我倒是认为著书的目的不是为了赚钱,写一本书给自己,总结自己的过往,将经验传播给他人,就可以了。2017年1月左右,摩拜单车终于进入到成都。不像重庆那样的上山下坡,成都平原地势较平,成都原本就有非常多骑自行车的人,街头巷尾都有自行车的踪影。作为短途的必要交通工具,摩拜单车
心路历程:爬虫实战——从数据到产品

京东链接: item.jd.com/12575102.ht…

经过近一年的辛苦创作、编辑、等待,本书终于出版了。这种感觉有点像是十月怀胎,但没有生育时候的痛苦,只有最后得到的欣喜。现在回忆起去年接到著书的邀请,然后到纠结,再到刚开始痛苦的写作,以及最后成稿后的释然,一切都觉得是一场人生的经历。我倒是认为著书的目的不是为了赚钱,写一本书给自己,总结自己的过往,将经验传播给他人,就可以了。

故事——还得从2017年说起

2017年1月左右,摩拜单车终于进入到成都。不像重庆那样的上山下坡,成都平原地势较平,成都原本就有非常多骑自行车的人,街头巷尾都有自行车的踪影。作为短途的必要交通工具,摩拜单车的进入算是给出行带来了非常大的方便。

有一天在查看摩拜单车的APP的时候,突发奇想是否可以将这些车的位置数据拿到,然后尝试分析一下运营状况,看看成都到底有多少车。打开电脑,轻车熟路的进行API分析,搞明白了API的接口,然后就写了一个简单的爬虫,获取了一个月左右的数据并进行了分析。然后在简书上发了几篇文章,并将源代码放在了 github.com/derekhe/mob… 这个repo中。

心路历程:爬虫实战——从数据到产品

出乎意料的是,这些分析居然得到了非常大的流量,两三天时间就到了1万多的阅读量,甚至这个数据分析还“成功”的引起了对方的注意:被问到你怎么得到数据?

2018年

2018年,顺着这个思路,后来我又继续分析并爬取了共享汽车、自由职业者网站,并继续坚持将2016年6月开始做的机票的数据爬虫做得更快更稳定。

心路历程:爬虫实战——从数据到产品

2017年末,爱飞狗旅行小程序上线,将我收集到的机票的数据公开,并集成了一个预测系统。知晓小程序对此特意写了一篇文章进行报道。随后,在2018年下半年ThougtWorks对外的YottaBytes分享中,我将爱飞狗的整个产品的规划、开发以及背后的技术实践都分享出来,并写成文章。

著书?

2018年3月底,电子工业出版社的安娜编辑联系我,看我能不能约一本书稿。当时我还没放在心上,想想写个书算是一个大工程吧,费时费力的,当时就想想要不还是算了?后来和编辑的更多沟通中发现,爬虫方面的书最近还比较热,也能热一段时间,我做的这些工作也恰好和爬虫非常有关。

我随后看了一些目前的爬虫相关的书籍, 发现很多爬虫的书籍都写得很初级,讲讲 Python 的语法、讲讲几个库的用法,弄两个例子就完了,甚至有些书居然用了76页讲各种东西的安装!!初级的爬虫往往很简单,爬几个网站即可,但更复杂的如何去拿到app的数据,如何破解一些sign的思路,却全然没有。或许是太复杂了吧。即便有些数据拿到手了,怎么分析,怎么可视化,也很少有讲解。

心路历程:爬虫实战——从数据到产品

如果我要写的话,我一定不会写这样的书,我不会写初级的书。我要写的话,一定是从一个想法开始,到如何实现这个想法,到如何解决各种困难。案例的话,一定是end to end的,将数据达到实用的阶段。

还好之前做过的各种数据分析案例,都是有一定的业务背景的,有一些数据提供给了一些爱好者进行了更深入的分析,有一些数据甚至帮助一些公司进行一些新业务的拓展尝试。我和编辑沟通了这些想法,那就开始动手吧!(其实内心是有点纠结的,因为想到要写很长的时间,非常的难受)

心路历程:爬虫实战——从数据到产品

那就开始吧

这是最原始的选题单,可以看到其实当时想写的例子其实比现在书中呈现的更多。但后来由于目标网站改动太大,以及有些网站的例子不太合适,所以进行了删减。

心路历程:爬虫实战——从数据到产品

最后,只有半年的时间啊……

心路历程:爬虫实战——从数据到产品

万事开头难,先写个提纲吧:

心路历程:爬虫实战——从数据到产品

开始

工欲善其事必先利其器,2009年写过研究生的论文,倒是对Word玩的很溜。但如今都2018年了哟,好歹用点Markdown对吧!

好吧,就用Markdown。但是用Markdown的话,我需要把每个章节分开么?后来尝试了一下发现,单一Markdown文件就非常利于管理,不用有洁癖一样把东西拆来拆去:

  • 方便预览整书情况
  • 方便章节之间相互引用
  • 避免调整章节时候的麻烦事

然后,在Visual Studio中安装了Markdown Preview Enhanced插件,这个 工具 很好:

  • 自动预览
  • 自动生成目录
  • 自动内嵌图片、内嵌代码
  • 能够导出成多种格式(Word格式、PDF格式等)
心路历程:爬虫实战——从数据到产品

最后,整个项目当然会用git进行管理,这是最基本的啦。

其中我觉得需要拿出来讲的是,Markdown中可以直接引用代码。这意味着我一边著书一边写的代码,可以无缝的集成到文章中,这样我更改了代码以后,书中的代码也更新了,避免了不同步的问题。

心路历程:爬虫实战——从数据到产品

一年

现在回顾一下整个过程。

我这个人是喜欢一鼓作气做完一件事情。为了保证及时交付,每天都分配了至少两个小时的时间,再加上之前已经有一些素材的积累,所以整个书的书写都相对比较快。基本上在4个月时间内集中写完了书籍。初稿完成后,我的事情就比较少了,主要是一些校对的工作。

  • 4月底:建立Repo
  • 5月初:书写第一章
  • 6月初:完成单车部分书写
  • 6月底:完成共享汽车部分书写
  • 7月底:完成Freelancer部分书写
  • 8月初:增加爱飞狗产品
  • 9月底:完成所有书写,并转换成docx供编辑修改
  • 10月初——12月底 一排
  • 12月底到1月初: 二排,拿到书号
  • 2月底:终审
  • 3月中:封面、查重、定价
  • 3月底:样书到

经验

  • 持续和编辑联系,写完一章就给编辑大致看看得到反馈 这一点避免了很多走弯路。第一次著书,对著书需要做的事情了解的比较少,加之平时在敏捷项目中都强调快速反馈,在著书过程中也是,能够及时避免一些坑。
  • 一鼓作气,坚持每天花些时间写,避免拖拉
  • 长期写博客,积累素材

在著书的过程中也有一些不可避免的“坑”。一来是著书不像是写博客那么随意,对于语言以及内容的提供都要有一个监管在里面。运气不好的是初稿交了以后,编辑告诉我2018年国家对地图相关的图片管理很严。我了解到相关的书籍都必须要进行审核,虽然说是免费,但是为了避免审核的时间消耗和一些潜在的风险,我们对书中的一些地图相关的图片、内容进行了一些修改和删减。

爬虫这种技术有一定的法律风险,再三考虑之下对书中也有提到一些特定APP名字的地方,我们将名字进行了打码,并强调了这些思路以及代码都仅供参考。

初稿的反馈说书写的很直白,全是干货,审核后说是要语言柔和一些。由于这个书的架构和其他类似书籍先将一大堆基础知识不一样,出版社的领导提议说将书的结构进行调整,变成介绍工具在前,案例在后。但这就是我想尽力避免的,不想让读者的钱花到了原本网上可以很快查到的地方,所以拒绝了。

由于互联网时代变化很快,网站和APP都在改版,所以爬虫相关的代码,目前有些已经无法使用了。这是预料之中的事情,但书中所传递的方法,是通用的。

总结

不管如何,第一本书也算是出来了,放在书架上也是对我的极大地鼓舞。著书不容易,一旦开始就要一鼓作气。平时的积累非常重要,所以多多写博客吧。

PS:掘金很奇怪啊,xieshu、chushu(自行脑补)都是关键字,不给发表。只能改个词语了。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员面试手册

程序员面试手册

[印] 纳拉辛哈·卡鲁曼希(Narasimha Karumanchi) / 爱飞翔 / 机械工业出版社 / 2018-2-27 / 99

本书特色 以通俗易懂的方式讲述面试题,涵盖编程基础、架构设计、网络技术、数据库技术、数据结构及算法等主题 书中的题目来自微软、谷歌、亚马逊、雅虎、Oracle、Facebook等大公司的面试题,以及一些知名竞赛(如GATE)的考试题 全书约有700道算法题,每道题都有详细解答 针对每一编程问题,都会按照复杂度递减的顺序给出各种解法 专注于问题本身并对这些问题做出分析,......一起来看看 《程序员面试手册》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具