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

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

学到哪种程度

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

(必要部分)

  1. 语言选择:一般是了解Python、Java、Golang之一
  2. 熟悉多线程编程、网络编程、HTTP协议相关
  3. 开发过完整爬虫项目(最好有全站爬虫经验,这个下面会说到)
  4. 反爬相关,cookie、ip池、验证码等等
  5. 熟练使用分布式

(非必要,建议)

  1. 了解消息队列,如RabbitMQ、Kafka、Redis等
  2. 具有数据挖掘、自然语言处理、信息检索、机器学习经验
  3. 熟悉APP数据采集、中间人代理
  4. 大数据处理(Hive/MR/Spark/Storm)
  5. 数据库Mysql,redis,mongdb
  6. 熟悉Git操作、linux环境开发
  7. 读懂js代码,这个真的很重要

如何提升

随便看看知乎上的教程就可以入门了,就Python而言,会requests当然是不够的,还需要了解scrapy和pyspider这两个框架,scrapy_redis也是需要理解原理的。

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

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

什么叫全站爬取

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

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

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

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

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

实际项目经验

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

  1. 你爬过哪些网站
  2. 日均最大采集量是多少
  3. 你遇到哪些棘手问题,如何解决
  4. 等等

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

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

语言选择

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

最后说下Golang,Golang真的很牛逼,说个数字,Golang可以每分钟下载网页数量 2W ,Python可以吗~~

宣传下自己的刷题项目 Leetcode Solutions By All Language

关于反爬

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

如何判断能力足够

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

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

欢迎留言指出

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

原文发布于微信公众号 - Python爬虫与算法进阶(zhangslob)

原文发表时间:2018-05-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习网

最熟悉又陌生的5大概念之“JRE、JDK、J2SE、J2EE、J2ME”

看完标题,大家可能会有疑问,什么叫最熟悉又陌生的概念;说最熟悉是因为这些概念经常听到或看到,陌生是因为不了解它们的真正含义,怎么用,什么时候会用到;如果你觉得这...

3653
来自专栏大数据

数据挖掘敲门砖-Python爬虫入门

WHAT ? 数据挖掘是一门综合的技术,随着Ai的兴起,在国内的需求日渐增大。 数据挖掘的职业方向通常有三个,顺便概要地提一下所需的技能(不仅于此) 数据分析方...

2449
来自专栏Java帮帮-微信公众号-技术文章全总结

day06.Hadoop快速入门云服务三种模式IaaS,PaaS和SaaS【大数据教程】

3985
来自专栏前端大白专栏

关于react-native的各种报错的最终解决方案

2349
来自专栏web前端教室

如何从零开始,形成自己的模块化思维方式?

计算机这东西不是凭空出现的,它是为了解决一些实际的问题,有很多时候是对现实世界的模拟。遇到问题时,经常会有人说,要有大局观,要具体问题具体分析,也可以牵强的解释...

1242
来自专栏帘卷西风的专栏

开源CEGUI编辑器之一(MFC重写的LayoutEditor)

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)

1272
来自专栏小勇DW3

【转载】java架构师进阶之路

Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。那成为Java架构师要掌握哪些技术呢,总体来说呢,有两...

5603
来自专栏张善友的专栏

Microsoft StreamInsight 构建物联网

最近关于“物联网”(IoT) 的争论有很多,而且理由都很充分。 Ericsson 的 CEO Hans Vestberg 预测到 2020 年将有 500 亿台...

2015
来自专栏闰土大叔

为什么我不推荐你使用vue-cli创建脚手架?

最近在知乎看到一个问题,原问题如下: “ 很奇怪,为什么现在能找到自己手动创建vue脚手架的文章非常少,而且大家似乎对webpack4的热情并不高,对于想基于v...

52013
来自专栏阮一峰的网络日志

USENET简介

普通的互联网用户,可能对USENET知之甚少,或者根本就没有听说过它。但是,这是一种很重要的网络应用,里面有一些真正有趣的东西。 我在网上没有找到比较通俗易懂的...

2829

扫码关注云+社区

领取腾讯云代金券