第一点:Python
因为面试的是Python爬虫岗位,面试官大多数会考察面试者的基础的Python知识,包括但不限于:
-
Python2.x与Python3.x的区别
-
Python的装饰器
-
Python的异步
-
Python的一些常用内置库,比如多线程之类的
第二点:数据结构与算法
数据结构与算法是对面试者尤其是校招生面试的一个很重要的点,当然小公司不会太在意这些,从目前的招聘情况来看对面试者的数据结构与算法的重视程度与企业的好坏成正比,那些从不问你数据结构的你就要当心他们是否把你当码农用的,当然以上情况不绝对,最终解释权归面试官所有。
第三点:Python爬虫
最重要也是最关键的一点当然是你的Python爬虫相关的知识与经验储备,这通常也是面试官考察的重点,包括但不限于:
-
你遇到过的反爬虫的策略有哪些?
-
你常用的反反爬虫的方案有哪些?
-
你用过多线程和异步吗?除此之外你还用过什么方法来提高爬虫效率?
-
有没有做过增量式抓取?
-
对Python爬虫框架是否有了解?
第四点:爬虫相关的项目经验
爬虫重在实践,除了理论知识之外,面试官也会十分注重爬虫相关的项目:
-
你做过哪些爬虫项目?如果有Github最好
-
你认为你做的最好的爬虫项目是哪个?其中解决了什么难题?有什么特别之处?
爬虫技术:
HTTP必须要有很深刻的理解,这是你纵横网络的立身之本;
BeautifulSoup、xpath这些都是基础操作了,一定要做到非常熟练;
Scrapy框架要会用,要能信手捏来写个分布式爬虫;
Webdriver、Selenium、PhantomJS至少也要会使用吧;
反爬虫的技巧,重中之重,能不能搞回来数据,能高多少数据回来,很大程度依赖于此。抓包、cookie分析、代理池搭建、字体加密、验证码处理等等,也都是常规操作了;
当然数据库也少不了啊。一般企业要求至少会一种SQL和一种noSQL。
了解布隆过滤器,会增量爬取。
以上是我在面试过程中,会碰到的一些技术相关的问题的总结,当然面试中不光是技术这一点,但是对于做技术的,过了技术面基本上就是薪资问题了。