美文网首页大数据 爬虫Python AI Sql我爱编程python学习
爬虫学到什么程度可以去找工作? 这是我给你的一个建议!

爬虫学到什么程度可以去找工作? 这是我给你的一个建议!

作者: 小天真_5eeb | 来源:发表于2018-07-28 11:44 被阅读4次

    最近很多朋友问我,我在自学爬虫,学到什么程度可以去找工作呢?

    这篇文章会说说我自己的心得体验,关于爬虫、关于工作,仅供参考。

    学到哪种程度

    暂且把目标定位初级爬虫工程师,简单列一下吧:

    (必要部分)

    语言选择:一般是了解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也是需要理解原理的。

    分布式如何搭建、如何解决其中遇到内存、速度问题。

    参考 scrapy-redis 和 scrapy 有什么区别?

    什么叫全站爬取

    最简单的拿拉钩来举例,搜索关键词,有30页,不要以为把这30页爬完就是全站爬取了,你应该想方法把所有数据全部爬下来。

    什么办法,通过筛选缩小范围,慢慢来就OK了。

    同时,每个职位还会有推荐职位,再写一个采集推荐的爬虫。

    这个过程需要注意的是如何去重,Mongo可以、redis也可以。

    参考 Scrapy中如何提高数据的插入速度

    实际项目经验

    这个面试中肯定会被人问道,如:

    你爬过哪些网站

    日均最大采集量是多少

    你遇到哪些棘手问题,如何解决

    等等

    那么怎么找项目呢?比如我要爬微博数据,去Github中搜索下,项目还算少吗?

    语言选择

    我自己建议是Python、Java、Golang最好都了解,Java爬虫的也很多,但是网上教程几乎都是Python的,悲哀。

    最后说下Golang,Golang真的很牛逼,说个数字,Golang可以每分钟下载网页数量 2W ,Python可以吗~~ 小编推荐一个学Python的学习裙【 二二七,四三五,四五零 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!希望新手少走弯路

    关于反爬

    常见的 UA、Refer等需要了解是什么东西,有些验证的ID如何产生的,是否必要;关于IP池这块我不了解,不多说,需要注意的是如何设计拉黑机制;模拟登陆也是必要的,fuck-login 可以研究下代码,或者提PR。

    模拟登陆其实就是一步步的请求,保存cookie会话

    如何判断能力足够

    很简单,给个任务,爬取知乎上所有问题。

    你会如何思考并设计这个项目?

    欢迎留言指出

    以上仅为个人看法,若有不足之处请指出。希望可以帮助你

    文末知识点摘要:Python 中,字符串"连接"效率最高的方式是?一定出乎你的意料

    网上很多文章人云亦云,字符串连接应该使用「join」方法而不要用「+」操作。说前者效率更高,它以更少的代价创建新字符串,如果用「+」连接多个字符串,每连接一次,就要为字符串分配一次内存,效率显得有点低,这样的解释听起来很有道理,但 Cpython 解释器是不是真的按照我们说的这样呢?

    今天做了一个试验,结果可能会出乎你的意料。

    上面 3 个函数分别表示用「join」和「format」还有「+」操作来连接字符串,从 0 到 n,总共 n 个数字连接起来构成一个新的字符串,形如:1234567891011……n。

    下面是测试脚本:

    每组取了15个样本数据,分别用 1,2,4,8,… 8192 个数字相连接,得到的统计数据可以看出,在数据量非常少的时候,三者效率几乎没什么差异,当少于20个字符串连接时,用「+」效率甚至更高,不过,随着字符串的个数增多,「join」方法发挥出来效果了,而用「+」越来越慢。这点无论是 python2 还是 python3 基本上是一样的。

    所以结论是:如果连接的字符串很少,只有几个或者十几个,完全可以通过「+」来连接,毕竟这种方式更直白,而超过一定个数之后,则应该采用「join」方法,只有在操作大数据的时候,两者的对比才明显。

    相关文章

      网友评论

        本文标题:爬虫学到什么程度可以去找工作? 这是我给你的一个建议!

        本文链接:https://www.haomeiwen.com/subject/linnmftx.html