接触了一段时间的python,但仅仅使用了一些基本的函数。但是,Python在数据挖掘方面功能十分强大。总是用牛刀来杀鸡也不合适,终究是要杀几只牛来练练手的微笑。
于是我做了一个使用爬虫爬取招聘网站上的招聘信息的项目,并把整个过程写成一个教程,也是希望初学python和爬虫的同志们可以通过一个小项目来练手。大部分爬虫的入门教程第一课都是爬取贴吧上面的图片。本教程难度和它的难度差不多,但是会更加有意思。
------->>>爬虫、机器学习、面向新手小白、详细教程、成就感满满
--------->>>心动了吗?一起开始吧!奋斗
从一个项目入手,可以很快地学习到相关的知识,而且可以很有成就感。我构思了这么一个项目:通过python编写爬虫程序,爬取招聘网站上面的招聘信息,(为以后跳槽做准备)。
因为招聘网站上面的信息往往十分笼统——在招聘网站的搜索引擎上面输入职位、工作地点等限制,依然难以检索到合适的信息。就拿‘算法工程师’这个职位而言,需要各种技能,比如C/C++,Python编程语言,比如音视频、图像、文字的方向,比如linux环境下的开发,比如matlab、数学统计学知识,比如机器学习的算法等等。所以当我们投简历的时候,大部分时间都花在阅读招聘信息,寻找适合自己的工作上面了。所以我们希望做一个程序,来自动爬取招聘网站的招聘信息,并且具有一定的筛选功能。
本教程以爬取‘智联招聘’网站的信息为例。其它网站方法类似,大家可以举一反三。
首先,打开智联招聘的网站,搜索“算法工程师”、工作地点“北京”。可以得到一个搜索结果页面。可以看到结果页面的地址为“北京算法工程师招聘(求职)算法工程师招聘(求职)尽在智联招聘
打开网页的源代码,可以看到类似于
<span style="font-size:18px;"><div style="width: 224px;*width: 218px; _width:200px; float: left">
<a style="font-weight: bold" par="ssidkey=y&ss=201&ff=03" href="<span style="color:#FF0000;"><span style="color:#FF0000;">http://jobs.zhaopin.com/199013411255501.htm</span></span>" target="_blank">
<b>算法工程师</b>
</a>
</div></span>
这一段代码里面包含了招聘职位和公司名称。
<div class="terminalpage clearfix">
<div class="terminalpage-left">
<ul class="terminal-ul clearfix">
<li><span>职位月薪:</span><strong>10001-15000元/月</strong></li>
<li><span>工作地点:</span><strong><a target="_blank" href="北京招聘网_北京人才网_北京招聘信息_智联招聘">北京</a>-朝阳区</strong></li>
<li><span>发布日期:</span><strong><span id="span4freshdate">2016-03-11</span></strong></li>
<li><span>工作性质:</span><strong>全职</strong></li>
<li><span>工作经验:</span><strong>1-3年</strong></li>
<li><span>最低学历:</span><strong>本科</strong></li>
<li><span>招聘人数:</span><strong>2人 </strong></li>
<li><span>职位类别:</span><strong><a target="_blank" href="http://jobs.zhaopin.com/beijing/sj079/">软件研发工程师</a></strong></li>
再往下看,可以看到具体的招聘要求。
<span style="font-size:18px;"> <div class="tab-cont-box">
<div class="tab-inner-cont">
<!-- SWSStringCutStart -->
<p>岗位职责:</p><p>1. 负责海量数据的处理、分析、挖掘;异构数据系统和大数据集成、整合;</p><p>2. 负责大规模数据的实时查询架构研发及维护;</p><p>3. 运用数据挖掘和机器学习方法和技术,深入挖掘和分析海量商业数据;</p><p>4. 提高系统服务的可用性、稳定性和可扩展性。</p><p><br/></p><p><br/></p><p>任职要求:</p><p>1. 精通Java或其他主流开发语言,具备扎实的数据结构与算法功底;</p><p>2. 熟悉Linux系统环境下的开发,了解Linux操作系统日常维护、优化;有丰富的Shell脚本开发经验;</p><p>3. 具备数据库理论基础,精通SQL语言,熟悉主流关系型数据库,并有实际应用和开发经验;</p><p>4. 熟悉分布式存储,处理及查询系统架构,如HDFS,MapReduce,及MPP等;</p><p>5. 熟悉常用数据挖掘算法更佳,包括但不限于推荐系统,聚类分类等。</p><p><br/></p>
<!-- SWSStringCutEnd -->
<b>工作地址:</b>
<h2>
朝阳区安定路39号长新大厦1208</span>
这样,思路就很清晰了:通过搜索界面,抓取招聘信息页面,分析页面内容,返回结果。