小言_互联网的博客

大专毕业的他却是爬虫领域的大佬!收割阿里等诸多一线大厂offer

325人阅读  评论(0)

  本来呢!这周每天下班回到家我都是凌晨才休息,咨询采访了圈内Python领域的各位顶级大佬!准备了一些题材想在周末写一篇Python领域相关的面经宝典,让我们一起听听Python各领域大佬的经验及建议。但是我决定后续再写那篇文章,因为我想带给大家一篇比较励志的文章。有时候适当的品尝一下鸡汤文章也是大有益处的嘞!我是正能量博主,自然鸡汤也是最干的那种!

    什么!不喝?来人!强行给我灌一波鸡汤…

  以我自身为例吧,我以前特反感那种心灵鸡汤式的文章!所谓道理谁都懂!人生路难走啊!可是那时候我也常常处在迷茫期,我在想我的目标是什么?真的有时候情绪特别低落的时候翻看手机,发现我曾经不屑一顾的鸡汤式文章,里面的内容讲得却正好我当前遇到的问题。其实有时候很多文章就像药一样,自己不病一下,可能永远都不会知道这些药的作用。但是真正重要的是什么呢?是实际行动!

  这篇文章我个人认为它真的还是很励志的!我在写的过程中也是能感受到一个平凡人走向强者之路的那种欣喜!当然,更多是背后的故事,每一个成为强者的人在Ta的背后总会有那么一段辛酸坎坷的道路!
《天行九歌》这部动漫不知道大家有没有看过!黑白玄翦是一个强者!可他到底有多强,恐怕连玄机自己都不知道如何将他的能力彻底的展现出来!

  每一个强者的背后都有一段心酸的故事!心曲千万端,悲来却难说!当然喽!有时候很多人成功了,即使没有坚强的故事也会加以夸张的手法,捏造一个坚强的故事!

  我的初心只是希望这篇文章能够帮助更多迷茫的朋友们包括我自己!能够在技术道路上时刻鞭策我们自己,也希望我们都能成为那个让人敬佩的大佬

机会永远是留给努力在准备的人!成功的秘诀在于能够多努力一次!为了成功,你努力了多少次?

你要的生活,只能你自己在风雨中奔跑!没有人给你打伞,你不努力,就过不上你想要的生活!只能在泥淖中苦苦挣扎!

  我怎么老控制不住自己的手想写些多愁善感的东西呢!再写估计等下各位读者要朝我丢鸡蛋、烂白菜啥的了…哈哈,言归正传!进入今天的主题,今天这篇励志文章主要的主人公到底是谁呢?他的名字叫韦世东。该怎么向大家介绍呢?那我就简单的做一些描述吧…

  • 图灵教育签约作者
  • 电子工业出版社签约作者
  • 华为云认证云享专家
  • 掘金社区优秀作者
  • GitChat 认证作者
  • 开源项目 aiowebsocket 作者

同样他也是一名资深爬虫工程师,在爬虫领域也处处留下了他的足迹,它是《Python3反爬虫原理与绕过实战》的作者

以下是主人公自己一些讲述
  我是大专学历,转行自学两年的 Python 开发者!在 2018 年以前,我并不是一个专业的研发,工作内容甚至与技术没有太多关联。我所学的专业是“软件开发”,但大专念书的时候没有好好学习,导致毕业后四处碰壁。
  毕业后的第一年辗转进入了一个互联网金融企业,在技术部里面担任最小的小弟。随着公司的发展和人数增加,我从小弟变成了小哥,后来成为了连接技术部和公司高层的纽带。
  从这个时候起,我离技术越来越远,后来慢慢转到了运营岗,并通过努力从运营小弟变成了运营小哥。2013 年毕业,到 2018 年转技术,中间 5 年时间里我也只有第一年呆在技术岗位,其他几年都与技术无关。这几年我待过的岗位有:信息安全员、技术组长、运营专员、运营指导、副总经理、运营总监。
  互联网金融倒闭和跑路潮爆发,我感到行业岌岌可危,而且我觉得就我这点运营水平也蹦哒不起来(说一事无成也不为过)。恰好那段时间我了解到 Python 语言,了解到爬虫对于企业运营和发展的重要性,还有 Python 易学的特点。
  于是我下班后看 Python 的入门教程,并根据网上文章尝试运行自己编写的代码。念书的时候,学校教的是 C 语言、C# 和 PHP,但我都没有学会。唯独这一次,我感觉我能够学会 Python。
  在家看慕课网的 Python 入门文章、廖雪峰的 Python3 入门教程文章和慕课网 Bobby 的爬虫入门视频。跟着教程学习了大概 3 个月,我就尝试自己接一些小需求来做,例如爬取一些公开数据、编写 Python 程序等。那时候一两天才能完成任务,得到的报酬通常是 30~300,有时候甚至靠回答群友的问题领几块钱小红包。
  自学阶段过去之后,我的 Python 水平已经达到了初级,还学会了很多爬虫相关的技术,例如网页解析、数据存储、定时调度、去重和增量爬取等,对于常见的一些反爬虫措施也略有了解。
  从零基础到这个阶段,我大概花了 7 个月。这时候,我觉得我能够胜任一个初级爬虫工程师的工作了,于是便在省会城市的人才网找了一些招爬虫或 Python 研发的公司,投了简历。三天内,接到了 5 个面试,然后也顺利的找到了一份爬虫组长的工作。
  工作期间,我们爬虫组的任务就是完成技术负责人分配的数据爬取任务,目标分为网站和 APP两大类。我们公司是体育行业,所以数据的变动是常有的事,这就要求爬虫组能够高频的爬取数据。
为了省事,我参考 Scrapyd 和 Celery,用 Django 编写了一套支持 Crontab 规则的调度平台,这样我们编写的爬虫就可以集中在这个调度平台上进行管理。
  在反爬虫方面,对于那些用 JavaScript 保护数据的网站,我们最开始采取的是 Selenium 或者 Splash 这种自动渲染工具来应对。但后来考虑到高频、时效性和资源占用等问题,便硬着头皮去解目标网站中的 JS 算法,再用 Python 模拟实现同样的算法。这样,将爬虫的爬取速度和资源占用都调整到了最优的状态!

  那么!作为一名从自学到资深的爬虫大佬,他的学习方法以及经验想必也是在职业生涯中积累了不少,所以我也向大佬提出了一些关于爬虫面试以及反爬技术趋势的一些问题!很多时候!知识跟经验我们是可以共用的,不一定只是在爬虫领域!我在不断总结学习的情况下,也希望能呈现一些有意义且有价值的东西出来!




主人公呢!目前就职于国内某大厂

他也将自己在大厂的一些面经做了较全的整理(来!小本子准备):

  • 第一轮常见问题,假设这轮是技术一面
    1、请你简单介绍一下自己
    2、按照简历上的工作经历和内容询问细节,例如:
      •你爬过 abc 和 asc,期间有没有遇到什么困难,你是如何完成的?
      •请说说你在团队中充当的角色和主要负责的部分
      •我看你参与了 sail 的开发,当时你们为什么要开发这样一个平台,而不是考虑用别的方式替代?
      •你工作期间遇到过哪些反爬虫?都能解决吗?怎么解决的?

  3、通过交谈了解个人能力,例如:

    •你知道的排序算法有哪些?它们的时间复杂度分别是?
    •你能清楚描述逻辑的排序算法有哪几个,说来听听
    •你的主要编程语言是 Python,那你说说 Python 中深浅拷贝的区别和实现
    •Python 的 yield 关键字有什么作用?
    •讲讲你了解的网络协议的构成和双端交互流程
    •你常用的数据库是?为什么会选择它
    •有在项目中用过消息中间件吗,例如 Kafka、RabbitMQ 之类的

  4、对某个技术点深入讨论,例如:

    •你说说点选验证码的正向校验流程和爬虫工程师的技术流程
    •鼠标轨迹一般是怎么记录的?
    •怎么模拟鼠标轨迹,成功率高的算法有多高?
    •你用技术能通过哪几个验证码的验证?
    •你认为通过率受到哪些因素影响?

  • 第二轮常见问题(假设这是技术二面)
    2、找优点与缺点,例如:

    •你说说擅长哪些方面
    •现在有一个场景,假设需要按预告时间爬取实时体育数据(例如篮球赛事,包括队伍比分、球员得分、阵容等),你如何确保爬虫程序能够及时、稳定且准确地将需求团队要求的数据传递过来?
    •说说网页端常见的反爬虫手段和解决的办法
    •JavaScript 逆向你一般怎么做的,先如何,再如何?
    •如果遇到硬茬,你通常怎么做?
    •代码混淆的手段有哪些?怎么实现的?
    •APP 逆向你现在到什么程度?
    •讲讲 hook 原理和具体的操作过程
    •有没有令人眼前一亮的反爬虫思路或者破解思路?
    •你现在技术方面有哪些瓶颈或者觉得可以提升的地方?

  • 第三轮常见问题(假设这是技术三面)

  1、做题通常有几种情况,例如:

    •这有几道题你做一下,N 时间交给我
    •你现在技术方面有哪些瓶颈或者觉得可以提升的地方?
    •这有几道题,不限时间,你做出来了告诉我

  2、题目范围大致分为几种,例如

    •编程知识、语言知识和爬虫知识,例如语言特性、网络协议知识和程序设计等
    •算法题,例如你按照题目指引给的输入和输出实现一个程序。我遇到过的有排序、树、图
    •这有几个网站,你需要获取 ass 上的信息数据

  3、讲讲你做题的思路,例如:

    •这一题为什么这么做,有什么好处?
    •你可以采用其他方式完成吗?
    •描述一下做题过程

  其中不乏关联性很强的连环炮问题,如果你能够流畅应答,说明你的技术能力很扎实。如果遇到难以回答的问题或者答不对,那就说明你还有很多需要补强的地方,加油!
  补充:靠后的面试中会问很多跟真实需求有关的问题,例如通信、多机资源监控和管理、主动监控数据、性能提升,对应的问题例如如何在有限的
QPS
情况下保证能够获取到有效的、优质的数据?如何实现主动监控数据,一旦结构或数据发生变化就能够得到通知?你设计一组调度架构,如何能保证服务器资源最大化利用

  其实我们很多人在面试的时候都会非常细心的精心准备,会在网上找一些高频的面试题,也会去leetcode刷一些算法。有用吗?回答是肯定有用的!其实我个人觉得面试这种东西很神奇,只要对上眼了,可能你之前所有的准备都可能派不上用场。但是!这里并不是让大家佛系的取对待每一次机会,毕竟机会都是留给有准备的人!就像这篇文章一样它可能会帮助你在获得下一次offer中,掉坑里的概率略小!

  • 我也给大家分享一个自己的经验及技巧:
    很多时候我们在面试的时候如果面试官问了你一个问题,可能我们不会,但是我们该怎么做呢?我给出了以下高频的几种回答:

  第一种回答:我不会!

  第二种回答:随便说一个答案,面试官质疑,你闪烁其词,反正就是不说自己不会!

  第三种回答:灵光一闪,对问题不置可否,一顿胡扯将话题引到你熟悉的领域!

  第四种回答:说实话我不了解这个问题,但是我可以尝试分析一下,如果有不对的地方希望得到您的指正!

你觉得什么样的回答更好呢?或者说你有什么更好的回答!欢迎评论区留言。

2. 致谢

  好了,到这里又到了跟大家说再见的时候了。感谢抽出宝贵时间阅读的各位小读者们。创作不易,如果感觉有点东西的话,帮忙点个赞再走吧。你的支持是我创作的动力,希望能带给大家更多优质的文章

如果你想跟作者有点故事,可以通过下方传送门找到我哟!里面有作者收藏的独家学习秘籍及优质大佬群。跟各领域优秀的顶级大佬在一起聊聊技术、学学投资理财…不说了~我要回家吃饭了~~记得来找我哟、风里雨里我会一直在这等你


转载:https://blog.csdn.net/qiulin_wu/article/details/104916551
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场