我叫韦世东,是一名爬虫工程师,然而我闭关的时间却比我工作的时间还长,请大家来听听我的故事。
大专毕业的那一年正是互联网金融的狂潮,刚刚踏出校门,一脸懵比的的我兜兜转转(太菜了,找不到工作)加入了一家闻所未闻的互联网金融企业,走上了升职加薪 迎娶白富美的康庄大道。
这真不是吹,是一个神奇又蜿蜒曲折的故事。
刺激的面试
我是 10 月份入职的,入职前经历了人生最刺激的一次面试。公司金融交易网站的漏洞被发布在乌云平台上,当时技术负责人手足无措,不知道如何处理这类信息安全问题。于是心生一计,让前来应聘的工程师解决此难题,谁能解决谁就入职。
共同竞争 PHP 开发工程师岗位的约莫有七八个人,我也是其中之一。一个个进入技术部办公室,又一个个垂头丧气地走出来,一边喝着白开水一边看前台漂亮姐姐的我,根本不知道应该怎么办。
终于轮到我了!
进入办公室后技术负责人叫我直接去屏幕面前,打开了乌云详情页,随后告诉我这就是漏洞的描述和具体情况,并按照详情页中的描述浮现了漏洞的症状,让我想一个方法修复它。好在大专一年级加入了当时最大的信息安全社区(红盟),在兴趣和舍友的驱使下通过了考核,进入到渗透组学习。虽然我有一些经验,但还是有点懵逼,心想反正他们也不知道,硬着头皮弄就是了。
哒哒哒
随着键盘的敲击声落下,我在自己也不太清楚状况的情形下修复了这个漏洞。
破茧的出差
顺利入职后,我成为了公司技术部最底层的小白白,喘气都不敢大声。经过多日地往来后,终于跟同一个办公室的几位大哥熟悉了,也成功地接下了他们交代的所有工作。
很快,我成为了公司最勤快的小伙子,负责公司大大小小除了老板生活起居之外的所有事。
- 前台打印机出故障了?
- 业务部计算机网络断开?
- 官网界面显示异常了?
- 新员工入职培训的内容讲解?
- 公司对外业务的宣讲?
- 自营产品的设计和研发工作?
- 技术人员不够,找来呀!
- 呀!厕所堵了!
- 产品定价和具体服务条款?
老板估计也看到了,觉得小伙不错,于是年底就被派遣到浙江出差学习。那是正是微信公众号开始的年代,我的任务就是学习如何开发微信公众号,回来之后承担官网与微信公众号兼容方面的工作。
很不巧的是,老板跟对方沟通有误,我们去了之后根本就不是学习微信公众号开发,而是学习如何用别人提供的平台拼凑出自己的微官网。对方的工程师隐藏得也是够深的,由于平台 OEM 是定制的,根本就不知道他们用的是什么平台。
有一天我在他座椅后观看他为宝马汽车制作微官网的时候,看到他的账户提示费用不足,他打开了充值网站,为他们定制的平台续费——不好意思,我把域名给记下了。
个人飞速发展
记下域名后我回到酒店便开始研究,顺利地拿到了开放平台的资料。当晚零下 2 度,我一遍吃着宵夜一边吹着北风跟老板汇报这件事,然后第二天下午我就被老板叫回去了。
回去之后,我们也代理了那个微信开放平台的产品,并且准备当作自营业务。很幸运的是,这件事我从头到尾都可以参与,学习到了很多知识和出事方法。
随着公司的壮大,人员不足的问题暴露了!由于我勤快又机灵,经常能够兼顾其他部门的工作,所以我慢慢地成为了老板身边的红人。个人重要性也日益增长,我甚至常常被叫到领导层会议中汇报技术部工作,并被其他部门领导嘱咐要协助他们部门同事完成工作。
我那时候感觉,我可能要起飞。
更换山头
有一天,公司来了一位技术比我厉害,认识老板比我早的工程师。他经常在公开场合嫌我太菜了,我也非常不满他对我指手画脚。由于他的职位比我高,是我的顶头上司,我也没法躲避,应对他的方法只能是不加班。
那时起,我感觉老板与我渐行渐远,在力挽狂澜失败后我萌生了跳槽的想法,实在是不想在这样的人手底下干活。
在多方寻访后,找到了一家集团,他们打算在原有的房产业务基础上新增金融业务。
互联网金融的狂潮,发展飞速却没有人才。我这半桶水,居然成为了人才,这你敢信?
电视剧一样的面试
集团想找的是金融子公司的运营总监,正好集团董事长这几天在省会城市,于是他决定带着副董事长、金融公司总经理和集团财务总监以及我的顶头上司金融公司副总经理一起来面试我。
他们几人坐成一排,我在他们对面,一张小凳子就像艺考一样。
我很紧张,手心都出汗了。
面试结束后,我开心地打了电话给女朋友(现在的老婆),沾沾自喜地告诉她这个梦一样(因为我全程懵逼,就像做梦一样)的面试情形,她也为我感到高兴,找到了一份省内互联网金融行业的顶薪工作。
那时候我毕业刚满一年。
轰然倒塌,再拿顶薪
入职一个月后收到通知,集团要暂停金融业务,除了中高层之外遣散一切工作人员。职位保留,可以自行找工作,如果业务恢复可以选择回来工作。
没了!
就这样没了!
那是我度过的最长空档期,将近 20 天没有工作,一直处于面试和等待面试的过程中。
后来有一家新成立的互联网公司愿意招我做运营总监,给的依然是行业顶薪。
自己创业还是转行自学
跌宕起伏,我在互联网金融行业混迹多年后遇到了倒闭潮和跑路潮。长期以来我从事的运营工作都与互联网金融相关,离开了互联网金融行业的我甚至找不到工作,因为其他行业的运营都需要有行业经验。
我很迷茫,不知道自己应该去干什么。
穷困潦倒之际,我打算和大学同学几人一起创业。我们一起注册了一家公司,准备经营支付宝 k12 教育方面的支付业务。由于资金不足、人手不足和时间不足等原因,最终这个项目停掉了。
我又到了穷困潦倒的地步。
偶然间我接触到了爬虫技术,经过几天的学习后编写代码爬取了互联网金融行业的一些交易数据,在对数据进行整合和分析后与运营相结合,得出了一些闻所未闻的结论。当时也无力操心这些事,一头扎进了 Python 语言的学习和爬虫技术的学习中。
第一份爬虫工程师工作
经过了 2 个月的闭门自学和近 3 个月的做单生涯后,我觉得我需要找一份专职的爬虫工程师工作,一直呆在家也不是办法。于是分析了省会城市关于爬虫工程师的职位信息后,投递了 3 家。
以我的学习能力和交流能力,第 1 家就顺利的拿到了入职邀请,有意思的事,这次的薪资是省会城市爬虫工程师的顶薪。
造轮子 生鸡蛋
工作是平淡无聊的,没什么挑战。基本的 JavaScript 逆向,APP 逆向和爬虫业务根本难不倒我,我借助公司爬虫需求的东风不停地学习,分布式爬虫、项目部署、定时调度、异步渲染工具、分发器……
有一天中午,我上网时发现有一个平台正在招募知识输出作者,我便股起勇气将自己的资料填了上去。多天以后,我也没有收到回复,于是我想尽办法联系了官方工作人员。多日努力后,终将主题为《爬虫项目部署》的小册编写事宜定了下来,这就是后来推出的《Python 实战:用 Scrapyd 打造个人化的爬虫部署管理控制台》电子小册。
编写这本小册的过程中我自己完整地回顾了 Python 项目部署相关的知识,并通读了 Scrapyd 项目源码,同时也扩展了自己的思维。
这让我意识到系统化地输出内容对读者或者对我都有帮助,接着我开启了另一个尝试——编写 MongoDB 入门教程。我早已耳闻 MongoDB 的大名,却鲜有机会去使用它,这次乘着知识付费的小船,探探 MongoDB 的究竟。
从我接触 MongoDB 到编写完教程,耗费了近一个月的时间,推出了《MongoDB 快速入门实战教程》
编写这套系列文章的过程,也是我学习 MongoDB 的过程。至此,我对 MongoDB 有了一定的认识,并掌握了从入门到进阶涉及到的知识。
学习使我进步,进步使我快乐。
掌握了快速学习的通幽小径,我完成了大量新知识的学习也编写了多篇技术文章,学习的成果就是将它们变为开源库,让大家享受知识带来的快乐。
出版图书
多次发布单篇技术文章和两套系列文章后,迎来了一次重大机遇——写书。这件事的开端是图书营销公司的编辑在技术社区上联系我,希望我与之合作出版一本 Python 相关的书籍。
一脸懵比,我什么水平就写书?
后来经过多方咨询,才了解到我的能力写书也是有可能的。网上流传着非常多编辑骗稿的故事,我心里也没底,便向出版了《Python3 网络爬虫实战》的好友崔庆才请教。崔哥听闻我有此意,于是将负责他那本书的编辑介绍给我。初步交流后,我按照出版社的规定提交了相关的资料,并幸运的等到了回复。
这就是《Python3 反爬虫原理与绕过实战》的由来。这本书的编写过程十分曲折,挑战也特别大。我要从爬虫工程师的角度告诉大家如何绕过反爬虫措施,又要从开发者的角度告诉大家如何限制爬虫、爬虫最怕什么。既要编写配套的反爬虫示例网站,又要编写绕过代码,重要的是配上契合的图。例如第 6 章第 2 小节 CSS 反爬虫中的配图 6-11。
例如第 10 章第 2 小节 JavaScript 代码混淆中的配图 10-26。
图 10-26
例如第 10 章第 1 小节 对称加密中的配图 10-21。
图 10-21
到底有多难?
正如网易工程师青南之言“我感觉像掏空了自己”。
在签约人民邮电出版社的同一个星期,我也拿到了电子工业出版社的邀约,编写另一本爬虫相关的书籍。根据当前进度来看,这本书将在 2019 年春节前交稿,在我编写这篇文章的时候,这本书正好写了一半。
合纵连横
值得一提的是,我也学着大家有模有样的开始了公众号文章的编写,希望在工作之余交到更多朋友、获得更多粉丝。2019 年夏天,我得到崔庆才的邀请,参与到公众号 进击的Coder 的日常管理,并可以将自己的文章发表到公众号上。
这半年时间,我发现身边涌现出了非常多的公众号号主,这大概率是因为大家都觉得运营公众号比较挣钱。我也有这个想法,但还有另外一个考虑——推动爬虫行业发展。
如何推动,推向何处?
我自己也不知道,没有完整的计划。但可以肯定的是,首先要提高大家的技术水平,降低踩坑的几率,同时加强爬虫工程师的整体素质。
这件事以个人之力怕是难以完成,我决定采用合纵连横之势,先将有时间有能力且乐于分享的圈内人聚集在一起,然后以文章、视频、问答和直播等方式输出内容。
这就是我们夜幕团队 NightTeam 的成立故事,团队成员为崔庆才、陈祥安、周子淇、唐轶飞、冯威、蔡晋、戴煌金、张冶青、文安哲和韦世东。
目前,我们已经开始了文章和视频的输出,推出了《JavaScript 逆向系列课》和《JavaScript 逆向高阶课》等视频内容。率先搭建并启用了垂直的爬虫安全论坛 bbs.nightteam.com。计划在 2019 年末或 2020 年初联合专业的律师事务所推出《爬虫知法》普法直播。
鬼谷蓝图
今年春节后,我将会前往北上广深杭中的一个城市工作。完成两本书的编写和视频课程的内容制作后,2020 年我将会有更多的时间思考和执行计划。
2020,体重降到 65KG 身体素质达到国家标准;
2020,在一线城市找到一份爬虫工程师工作;
2020,我将继续以文章的形式输出内容;
2020,我将与夜幕团队完成《爬虫知法》普法直播;
2020,我将设计新的视频课程,大概率会是新语言的入门进阶方向或者 APP 逆向;
2020,我将去体验周末讲师的工作,一方面是少儿编程,另一方面是职业技能;
2020,我将与夜幕团队其他成员推出多套免费的系列文章;
2020,我将进行新一轮的合纵连横,和圈内其他工程师一起探寻工作之外的挣钱方法;
2020,希望我的新书热销,我争取成为 IT 畅销书作者;
2020,SegmentFault 年度作者榜单上将有我的名字;
本文参与了 SegmentFault思否征文「2019 总结」,欢迎正在阅读的你也加入。