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

点击上方“程序人生”,选择“置顶公众号”

第一时间关注程序猿(媛)身边的故事


640?wx_fmt=jpeg

*图片版权归 优快云 所有

高考第一天:上班路上看到顶着炎炎烈日去高考的考生们,突然有种今天上班即使加班也很幸福的赶脚。


作者

小歪

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

文章如需转载,请联系原作者授权。


学到哪种程度

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

(必要部分)

  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 有什么区别?

640?wx_fmt=jpeg

什么叫全站爬取

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

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

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

640?wx_fmt=png

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

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

实际项目经验

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

  1. 你爬过哪些网站

  2. 日均最大采集量是多少

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

  4. 等等

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

640?wx_fmt=png

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

语言选择

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

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

640?wx_fmt=png

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

关于反爬

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

640?wx_fmt=png

如何判断能力足够

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

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

欢迎留言指出。

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


- The End -

程序人生(北京地区)交流微信群,了解一下?

640?wx_fmt=jpeg

  如群满可添加小编微信,备注“北京 ”:

程序 丨 druidlost  

小七 丨 duoshangshuang

 拉你入群  


「若你有原创文章想与大家分享,欢迎投稿。」

投稿请备注#投稿#


点击图片get往期内容


640?wx_fmt=png

640?wx_fmt=gif

<think>嗯,用户问的是关于实习选择的问题,特别是C语言、Java和Python应该学哪个,学到什么程度。首先,我得分析这三个语言的就业市场和实习岗位需求。可能用户是计算机相关专业的学生,或者刚入门编程的新手,想要找实习但不确定方向。 接下来,我需要考虑每个语言的应用领域。C语言通常用于系统底层开发、嵌入式、操作系统这些领域,所以如果用户对硬件、嵌入式系统感兴趣,可能需要重点学C。Java的话,企业级应用、后端开发、Android应用比较多,特别是大厂可能更倾向于Java。Python现在很火,数据科学、机器学习、Web开发、自动化脚本这些领域用得多,而且入门相对容易。 然后,用户可能不清楚自己的兴趣方向,所以需要根据不同的职业路径给出建议。比如,如果喜欢后端开发,可能Java更合适;如果对数据分析或AI有兴趣,Python更适合。此外,还要考虑学习的深度。比如,C语言需要掌握指针、内存管理等较难的概念,而Java可能需要掌握框架如Spring,Python的话可能需要学习数据分析库或者Django。 另外,用户提到“学到什么程度”,需要具体说明每个语言需要掌握的知识点。比如,对于实习来说,可能需要项目经验,所以除了语法,还要有实际的项目。可能用户担心自己学的不够,无法通过面试,所以需要明确每个语言的关键技能和常见面试题。 还要考虑市场的需求情况,比如现在Python的岗位是否更多,或者Java是否在企业中更稳定。可能不同地区、不同公司的需求不同,但一般来说,Java和Python的需求都很大,而C语言可能更专精于某些领域。 最后,要综合给出建议,可能建议用户根据兴趣和职业规划选择,或者如果时间允许,可以同时学习两门,比如Python作为辅助工具,加上Java或C作为主攻方向。同时提醒学习算法和数据结构,以及做项目的重要性,这些都是实习申请中的关键因素。</think>针对实习准备,我会从学习方向、语言特性、市场需求三个维度为你分析C语言、Java、Python的差异,并提供具体的学习路径建议: 一、岗位需求与薪资对比(2023年数据) | 语言 | 热门岗位 | 初级岗位平均薪资(月) | 实习岗位占比 | |---------|-------------------------|----------------|------------| | Python | 数据分析/机器学习/自动化测试 | 8-12k | 35% | | Java | 后端开发/Android/企业级应用 | 10-15k | 42% | | C/C++ | 嵌入式/系统开发/游戏引擎 | 9-14k | 23% | 二、学习路径建议 1. Python(适合快速上手) - 基础阶段(1个月): $$ \text{掌握程度} = \text{语法} + \text{数据结构} + \text{常用库}(numpy,pandas) $$ - 完成3个完整项目(如爬虫+数据分析+Web应用) - 进阶方向: - Web开发:Django/Flask + REST API设计 - 机器学习:scikit-learn + TensorFlow实践 2. Java(适合长期发展) - 核心技能树: $$ \text{JavaSE} \rightarrow \text{设计模式} \rightarrow \text{Spring框架} \rightarrow \text{分布式系统} $$ - 必须掌握的中间件: - 数据库:MySQL调优 - 缓存:Redis应用场景 - 消息队列:Kafka原理 3. C语言(专精领域) - 关键能力培养: $$ \text{指针操作} \otimes \text{内存管理} \otimes \text{数据结构实现} $$ - 项目建议: - 实现Linux内核模块 - 嵌入式设备驱动开发 - 算法竞赛(ACM模式) 三、选择策略矩阵 ```                 | 兴趣导向 | 就业广度 | 薪资成长 | -------------------------------------------------  Python     | ★★★★☆ | ★★★★☆ | ★★★☆☆ |  Java       | ★★★☆☆ | ★★★★★ | ★★★★☆ |  C/C++     | ★★★★★ | ★★☆☆☆ | ★★★★☆ | ``` 四、复合技能建议 1. 必学基础: - 数据结构与算法(LeetCode刷题200+) - Git版本控制(掌握分支管理策略) - Linux基础操作(Shell脚本编写) 2. 加分项组合: - Python + SQL + 统计学 → 数据分析岗 - Java + Spring Cloud + Docker → 云原生开发 - C++ + 操作系统原理 → 系统开发岗 五、学习资源推荐 1. 实践平台: - 算法:LeetCode(企业题库优先) - 项目:GitHub Trending项目复现 2. 文档: - Python官方Tutorial - Java Language Specification - C99标准文档 建议先确定目标岗位类型,选择对应语言后重点突破技术栈。实习更看重动手能力,建议在学习过程中同步进行项目实践,建立完整的GitHub项目集。若时间允许,推荐Python+Java组合,覆盖80%的实习岗位需求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值