IT干货网

爬虫工程师

developer 2022年03月04日 DevOps 156 0

毕竟大数据行业在国内兴起也就这几年,而爬虫工程师也由此从幕后走向台前,不清楚整个大行业的话,其实只能看到很片面的价值。

回忆这几年带团队的过程,还有团队的发展,有些同学片面低估爬虫工程师的价值,也有些同学盲目高看自已。这篇文章就说说我的想法,希望能让大家更了解这一行的一些工作,希望对大家是有所帮助的。

关于爬虫的话,面试的问题其实都差不多。我罗列一下:

  • 自我介绍。我发现厉害的面试官一般都不会要你做自我介绍,而要你自我介绍的其实只是需要几分钟看看你的简历。至于面试官厉不厉害,其实看他问问题的角度就能看出来了。

  • 项目中遇到最难的地方?是怎么解决的?

  • 详细问你某个项目的过程。因此你需要很了解你自己做的项目。我被问到最多的是关于淘宝UA值的计算过程,似乎大家都对淘宝很感兴趣。

  • HTTP的三次握手和四次挥手。这个是个高频,我被问了好几次。

  • 进程、线程和协程。

  • 如何设计一个爬虫。

  • 常见的反爬机制有哪些,每种机制的应对方案。这个也是个高频。

  • 如何提高小组的代码质量?我答的是peer review。

  • 常见的去重策略和存储方案。

  • 用过哪些爬虫框架。

基本就这些,可以看到,我很少会被问到只和Python相关的问题(只有一次,问了list和tuple的区别)。但是去研究下Python,总没什么坏处。另外一些可能的加分项:

  • 技术博客,github

  • 英语

什么是爬虫工程师

简单定义爬虫工程师就是通过相关的互联网技术或工具,获取网站或相关应用公开可见数据的工程师。由于互联网许多数据都是公开的,可以通过写程序或使用工具,摸拟请求,获取到目标网站返回的数据,然后通过相关技术或手段,将数据结构化保存下来。

比如我们可以通过爬虫获取大众点评的餐饮数据

比如我们可以通过爬虫获取百度地图的数据

比如我们可以通过爬虫获取豆瓣上的影评数据

爬虫工程师需要掌握什么技能

笔者曾经见过一副图,基本也把一个爬虫工程师会遇到的事情给说个遍,大家可以看一下

坦白说,这些知识点,都是建立在爬虫获取数据的基础之上。而爬虫获取数据就两种方式,一种就是自已写代码,一种就是用爬虫工具。

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

4.方案顾问(深入业务场景)

T岗一般有什么职位

1.爬虫项目一线开发交付人员

2.数据专员

3.高级数据专员

4.爬虫培训讲师

月薪45K的Python爬虫工程师告诉你爬虫应该怎么学,太详细了!

想用Python做爬虫,而你却还不会Python的话,那么这些入门基础知识必不可少。很多小伙伴,特别是在学校的学生,接触到爬虫之后就感觉这个好厉害的样子,我要学。但是却完全不知道从何开始,很迷茫,学的也很杂,下面就跟着小编一起来看看想用python来做爬虫到底需要学习哪些知识吧!

Python入门

1、基本知识、数据类型、流程控制。

人生苦短,快用Python

2、函数

人生苦短,只用Python

3、用模块

4、I/O基础

人生不短,也用Python

5、Linux基础

Linux基础

最后包管理和虚拟环境都要有所了解,怎么样,这些基础你都会了嘛!

web前端

当然光学了基础是远远不够的,我们要深入做爬虫,首先得了解这个东西是怎么做的了解清楚它的原理,那么web前端方面的学习是必不可少的,下面我们来了解一下。

1、标签

标签

2、样式

样式

3、JS语法

JS语法

4、jQuery

jQuery

5、Ajax

Ajax

6、bootstrap

bootstrap

前端部分不用涉及太深,只是学爬虫的话这些就完全够用了,俗话说“工欲善其事,必先利其器”,所以我们再把下面这些Python知识学完后,就可以毫无后顾之忧的来学习爬虫了。

Python进阶

1、面向对象

面向对象

2、装饰器、惰性器

装饰器、惰性器

3、高级模块

高级模块

4、 并发编程(多线程与多进程)

什么是进程、线程

多进程

多线程

Future实现多进程、多线程

5、并发编程(协程、异步IO)

协程、异步IO

好了,这些东西全部学会以后,就可以进行正式的爬虫学习了,在之后的学习路途中很多东西一看到就胸有成竹,想皮都皮不起来。

爬虫基础

学习爬虫,我们首先要了解什么是爬虫以及它的工作流程,知己知彼,方能百战百胜嘛。当然这些大家都知道的,废话不多说,先来看看爬虫基础知识点。

1、请求与响应

请求与响应

2、爬虫与反爬虫

爬虫与反爬虫

3、开发工具

开发工具

4、Urllib库使用详解与项目实战

Urllib库使用详解与项目实战

5、requests库安装使用与项目实战

requests库安装使用与项目实战

6、太多了看图

爬虫基础最后一弹

好了,如果只是想入个门的话,这些都差不多了,但我想每个学爬虫的小伙伴,都是想成为一个伟大的爬虫攻城狮的吧!来来来,让我们继续看看进阶学习方法。

爬虫进阶

1、爬虫框架实现

爬虫框架实现

2、破解反爬技术

破解反爬技术

3、代理池实现

代理池实现

4、模拟登陆

模拟登陆

5、pyspider框架

pyspider框架

爬虫高级部分

1、APP的抓取

APP的抓取

2、Scrapy框架

Scrapy框架

3、分布式爬虫实战

分布式爬虫实战

4、分布式爬虫部署

分布式爬虫部署 cpc30叉车

这些知识完全学会后,下一个爬虫大神就是你!

在平常生活工作中需要交流,所以加了一个群撒。看到每天都有基础不好的小伙伴在里面问问题,但是却半天没人回应,我实在看不下去了。给他们做了一些简单的解答,但是效果不是很好,一天下来碰到两个甚至多个类似的问题,所以我把问题归纳了一下,解释下答案,希望能帮到一些正在拼搏学习的小伙伴,对了介绍下我那个群,小编自己弄的一个交流群,学习氛围非常不错,大家都非常乐意解答,乐意交流沟通,就差你了。Python学习交流643692991,如果你正在学习python,小编欢迎你加入,大家都是Python党,不定期分享干货(只有Python爬虫,框架,零基础都有),包括我自己整理的一份2017最新的Python资料和零基础入门教程,刚开始接触和正在学习的小伙伴们。期待你成为大牛的一天


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Mac下获取AppStore安装包文件路径