初学者教程:第一只爬虫——爬取招聘信息(一)

来源:互联网 发布:html软件 编辑:程序博客网 时间:2024/04/30 05:15

    接触了一段时间的python,但仅仅使用了一些基本的函数。但是,Python在数据挖掘方面功能十分强大。总是用牛刀来杀鸡也不合适,终究是要杀几只牛来练练手的微笑

    于是我做了一个使用爬虫爬取招聘网站上的招聘信息的项目,并把整个过程写成一个教程,也是希望初学python和爬虫的同志们可以通过一个小项目来练手。大部分爬虫的入门教程第一课都是爬取贴吧上面的图片。本教程难度和它的难度差不多,但是会更加有意思。


------->>>爬虫、机器学习、面向新手小白、详细教程、成就感满满

--------->>>心动了吗?一起开始吧!奋斗

 


内容概要:

初学者教程:第一只爬虫——爬取招聘信息(一)

    思路概述,一个简单的介绍。

初学者教程:第一只爬虫——爬取招聘信息(二)

    基础实现。介绍爬虫的代码具体实现,如何将爬到的数据解析、保存下来

初学者教程:第一只爬虫——爬取招聘信息(三)

    进阶应用。与机器学习结合,使用logistic分类器,训练一个分类模型,用于区分某一条新的招聘信息是否适合自己



    从一个项目入手,可以很快地学习到相关的知识,而且可以很有成就感。我构思了这么一个项目:通过python编写爬虫程序,爬取招聘网站上面的招聘信息(为以后跳槽做准备)

    因为招聘网站上面的信息往往十分笼统——在招聘网站的搜索引擎上面输入职位、工作地点等限制,依然难以检索到合适的信息。就拿‘算法工程师’这个职位而言,需要各种技能,比如C/C++,Python编程语言,比如音视频、图像、文字的方向,比如linux环境下的开发,比如matlab、数学统计学知识,比如机器学习的算法等等。所以当我们投简历的时候,大部分时间都花在阅读招聘信息,寻找适合自己的工作上面了。所以我们希望做一个程序,来自动爬取招聘网站的招聘信息,并且具有一定的筛选功能。

    本教程以爬取‘智联招聘’网站的信息为例。其它网站方法类似,大家可以举一反三。  


    首先,打开智联招聘的网站,搜索“算法工程师”、工作地点“北京”。可以得到一个搜索结果页面。可以看到结果页面的地址为“http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8C%97%E4%BA%AC&kw=%E7%AE%97%E6%B3%95%E5%B7%A5%E7%A8%8B%E5%B8%88&sm=0&p=1”后面这些参数都是查找句柄。尝试修改页面中的搜索条件,可以看到这个地址的变化。这里'jl='参数后面是工作地址的信息,'kw='参数后面是岗位信息。'sm=0'参数是浏览方式。'p=1'是指第一页。如果爬取频率不太低的话,使用p=1就足够了。但是也可以修改这个字段,让程序自动访问下一页的信息。

    打开网页的源代码,可以看到类似于

<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>

的片段。这里的http://jobs.zhaopin.com/199013411255501.htm就是指向详细的招聘信息的链接了。也就是说,第一步,我们要读取搜索结果页面,把这些指向详细信息的链接抓取出来。然后访问这个链接,在子页面中抓取相信的招聘信息。


    我们打开这个网页,查看源代码,可以看到源代码的信息。

<span style="font-size:18px;"><div class="top-fixed-box">        <div class="fixed-inner-box">            <div class="inner-left fl">                <h1>数据算法工程师</h1>                <h2><a onclick="recordOutboundLink(this, 'term<span><a target=_blank class="attribute-value">inalpage'</a></span><span><a target=_blank class="attribute-value">, 'tocompanylink3');</a>" <span class="attribute-name">href</span>="<a target=_blank href="view-source:http://company.zhaopin.com/CC680361127.htm" class="attribute-value">http://company.zhaopin.com/CC680361127.htm</a>" <span class="attribute-name">target</span>="<a target=_blank class="attribute-value">_blank</a>"></span><span>北京小土科技有限公司</span><span></<span class="end-tag">a</span>></span><span></span><span></<span class="end-tag">h2</span>></span><span></span></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="http://www.zhaopin.com/beijing/">北京</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>

    这样,思路就很清晰了:通过搜索界面,抓取招聘信息页面,分析页面内容,返回结果。

   

0 0
原创粉丝点击