如何成为一名优秀的爬虫工程师
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何成为一名优秀的爬虫工程师
过完年后到现在,基本每周面试十几个同学的节奏,慢慢在面试过程中,我觉得在爬虫工程师这条路上,其实很多同学是不清不楚的。毕竟大数据行业在国内兴起也就这几年,而爬虫工程师也由此从幕后走向台前,不清楚整个大行业的话,其实只能看到很片面的价值。
回忆这几年带团队的过程,还有团队的发展,有些同学片面低估爬虫工程师的价值,也有些同学盲目高看自已。这篇文章就说说我的想法,希望能让大家更了解这一行的一些工作,希望对大家是有所帮助的。
什么是爬虫工程师
简单定义爬虫工程师就是通过相关的互联网技术或工具,获取网站或相关应用数据的工程师。由于互联网许多数据都是公开的,可以通过写程序或使用工具,摸拟请求,获取到目标网站返回的数据,然后通过相关技术或手段,将数据结构化保存下来。
比如我们可以通过爬虫获取大众点评的餐饮数据
比如我们可以通过爬虫获取百度地图的数据
比如我们可以通过爬虫获取豆瓣上的影评数据
爬虫工程师需要掌握什么技能
笔者曾经见过一副图,基本也把一个爬虫工程师会遇到的事情给说个遍,大家可以看一下
但说白,这些知识点,都是建立爬虫获取数据的基础之上。而爬虫获取数据就两种方式,一种就是自已写代码,一种就是用爬虫工具。
1.代码方向
通过写代码获取数据,基本任意一款主流的代码语言,其实都是有网络通讯包可以来做爬虫,无论是主流的python,还是java,还是c#都有,这里面只是由于python 用的人比较多,有一些库都封装好,效率也高,所以用的人比较多(很多大数据团队都在用python,所以就跟着用)。
通过代码的达到精通需要以下几个环节
1.熟悉任意一款语言,并达到可编写任意功能性代码的能力
2.熟悉HTTP协议,其实就是一个GET,一个POST,顶多带上一个cookie
2.工具方向
这个就很好理解,精通某一款主流的采集工具,比如说我们八爪鱼采集器
达到精通需要到什么程度?
1.如果你会用我们八爪鱼与XPATH,定位网页任意元素
2.如果你知道如何八爪鱼采集原理,懂得拆分规则,让整个采集效率翻10倍
3.其实没有天天使用我们八爪鱼超过三个月以上,写过一两百个规则的,都不应该算精通吧哈
以上两个工具层面熟悉外,还需要熟悉以下东西包括
1.防采集原理(验证码,多IP等)
2.html前端解析知识
3.分布式解决方案
4.正则表达式匹配
基本上熟悉掌握了以上这些技能,也差不多能成为一名合格,思路清晰的爬虫工程师了。写代码的有写代码的好处,用工具有用工具的好处,写代码的好处在于自由度比较大,挑战比较大,入门比较难,而且作用其实不大,因为很多时候其实是在重复造轮子。毕竟很多通用性的动作都是可以用爬虫工具完成的,功能爬虫工具都帮你做好了,你只要会用就行。而工具呢,工具始终有一点点局限性,工具为了通用性,在一定程度是牺牲了某些功能的,在一些很特殊的场景,工具其实很难完成。
所以我一向的推荐就是,工具+代码,才是一个现在主流的爬虫工程师的配置。你可以使用工具,比如我们八爪鱼,实现那99%的需求,但如果遇到特定的,自已留一手写代码解决,也是无妨的。毕竟我们要的是解决问题,更别说python 等等,配置个爬虫程序一点都不难,网上教程一大把。(国内主要有采集大神都是这么做,能用工具的优先用工具,除非工具搞不定,才自已码码代码)
爬虫工程师的关联技能
除了需要懂采集外,爬虫工程师还需要一些其他的技能,这才是真正衡量一名爬虫工程师是入门,还是普通,还是优秀的标准。其实在现在这个时代,复合型人才都是比较吃香的。
一个优秀的爬虫工程师,他还需要以下几项技术进行升华
1.数据清洗
因为采集下来的数据,很多时候都是一大段文本,你需要对文本进行提炼,也就是我们说的对数据进行清洗,这样才能更结构化的数据结构,保存在数据库里面。有时候我们采集多份数据,也需要通过清洗进行关联。这里面比如我们擅于使用Excel的一些高级技巧,也包括会使用R等程序语言,对文本进行处理。在我们八爪鱼数据中心团队的同学,都具备数据清洗的技能。
2.数据挖掘
爬虫后的数据挖掘,一般是指NLP这鬼东西。NLP是属于人工智能范筹的,中文叫自然语言处理,简单理解就是处理大量文本,从大量文本里面挖掘出价值的一个东西。在国内能做好的,都是属于凤毛鳞角的,我们八爪鱼也有我们自已的NLP团队,投入相当巨大,还没做得特别出色,仅仅开始实现一些特定场景功能,做一些单子了。我们为国内一些主流的AI公司,采集并挖掘后,输出AI数据。我们的数据中心就有牛人专门干这个的。
3.数据分析可视化
仅仅只是将数据采集下来,保存在数据库里面,仅仅只是实现第一步的价值。数据分析与可视化,才是数据背后更大的价值。所以需要对数据保存进数据库,然后通过相应的框架或程序开发,组织调用出来,辅助企业进行决策。所以我们八爪鱼有专门的数据BI团队,也有很多爬虫工程师善于使用EXCEL,一般可视化BI工具,为项目提供可视化数据支持。
4.深刻理解业务
无论是对互联网公开数据的获取能力的理解,还是对业务需求的理解,也是考量一个优秀的爬虫工程师的重要衡量标准,说白就是,不仅要懂技术,而且要懂业务,成为复合型的爬虫工程师。能到这个程度,才能将爬虫工程师的价值无限放大。比如理解风控业务,比如理解AI业务等。这个岗位我们有售前,有顾问等。
如何规划爬虫工程师的路线
在我的团队里面,是有L岗与T岗这两个路线的,L岗一般是指偏业务的爬虫工程师的岗位,T岗一般是指偏技术的爬虫工程师岗位,这跟人的性格有关,一些同学更喜欢靠近业务,表达能力好,反应快思路清晰,他就会往L岗走,一些同学更偏向技术,狂热于突破各种难题,输出更好的解决方案,他就会往T岗走。
L岗一般有什么职位
1.技术支持(中小客户方向)
2.售前(大客户方向)
3.数据中心Leader/项目Leader