爬虫学到什么程度可以去找工作

这篇文章会说说我自己的心得体验,关于爬虫、关于工作,仅供参考。
学到哪种程度
暂且把目标定位初级爬虫工程师,简单列一下吧:
(必要部分)
语言选择:一般是了解python、java、golang之一熟悉多线程编程、网络编程、http协议相关开发过完整爬虫项目(最好有全站爬虫经验,这个下面会说到)反爬相关,cookie、ip池、验证码等等熟练使用分布式(非必要,建议)
了解消息队列,如rabbitmq、kafka、redis等具有数据挖掘、自然语言处理、信息检索、机器学习经验熟悉app数据采集、中间人代理大数据处理(hive/mr/spark/storm)数据库mysql,redis,mongdb熟悉git操作、linux环境开发读懂js代码,这个真的很重要如何提升
随便看看知乎上的教程就可以入门了,就python而言,会requests当然是不够的,还需要了解scrapy和pyspider这两个框架,scrapy_redis也是需要理解原理的。
分布式如何搭建、如何解决其中遇到内存、速度问题。
什么叫全站爬取
最简单的拿拉钩来举例,搜索关键词,有30页,不要以为把这30页爬完就是全站爬取了,你应该想方法把所有数据全部爬下来。
什么办法,通过筛选缩小范围,慢慢来就ok了。
同时,每个职位还会有推荐职位,再写一个采集推荐的爬虫。
这个过程需要注意的是如何去重,mongo可以、redis也可以。
实际项目经验
这个面试中肯定会被人问道,如:
你爬过哪些网站日均最大采集量是多少你遇到哪些棘手问题,如何解决等等那么怎么找项目呢?比如我要爬微博数据,去github中搜索下,项目还算少吗?
模拟登陆其实就是一步步的请求,保存cookie会话。
语言选择
我自己建议是python、java、golang最好都了解,java爬虫的也很多,但是网上教程几乎都是python的,悲哀。
最后说下golang,golang真的很牛逼,说个数字,golang可以每分钟下载网页数量 2w ,python可以吗~~
关于反爬
常见的 ua、refer等需要了解是什么东西,有些验证的id如何产生的,是否必要;关于ip池这块我不了解,不多说,需要注意的是如何设计拉黑机制;模拟登陆也是必要的,fuck-login 可以研究下代码,或者提pr。
如何判断能力足够
很简单,给个任务,爬取知乎上所有问题。
你会如何思考并设计这个项目?