网页源码解析 - 智联招聘信息页面

根据招聘列表里面跳转过来的详细招聘信息页面。爬虫再根据这里进行关键信息提取。
相比于搜索列表页来说,这页内容很简单,而我们需要的也不多。
不过需要注意的是,这里在职业信息之外还需要额外收集企业信息。
虽然另外有专门的代码跳转到企业主页去搜集信息,但是阅读源码后发现,每家VIP企业都可以自己定制网页,因此获取基本信息不方便。
所以企业基本信息要在这一页就收集齐(基本信息和企业主页里是完全一样的)。
下面开始简单分析下各处源码。

职位的头信息

<div class="inner-left fl"><h1>销售、销售总监阿尔卡特数据、语音交换机(金牌代理商)</h1><h2><a onclick="recordOutboundLink(this, 'terminalpage', 'tocompanylink3');" href="http://company.zhaopin.com/%E4%B8%8A%E6%B5%B7%E5%B7%A8%E4%BC%98%E4%BF%A1%E6%81%AF%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8_CC355086418.htm" target="_blank">上海巨优信息科技有限公司</a></h2><div style="" class="welfare-tab-box"> <span>五险一金</span><span>年底双薪</span><span>绩效奖金</span><span>年终分红</span><span>带薪年假</span><span>节日福利</span><span>通讯补贴</span><span>交通补助</span> </div>
</div>

可以直接用class*="inner-left"对头信息进行定位,然后在其中用h1标签为职位名称,h2标签为公司名称,class="welfare-tab-box"为福利信息。

职位基础信息

<ul class="terminal-ul clearfix"><li><span>职位月薪:</span><strong>8001-10000元/月</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">2015-12-12</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>1人 </strong></li><li><span>职位类别:</span><strong><a href="http://jobs.zhaopin.com/355086418250171.htm?ssidkey=y&ss=201&ff=03#"></a><a target="_blank" href="http://jobs.zhaopin.com/beijing/sj001/">销售经理</a></strong></li>
</ul>

基础信息定位很简单,class^="terminal-ul"就够了。但是其中的每个信息没有标记,就只能用中文名称或者是顺序定位了。
信息内容全包含在strong标签里。

企业基本信息

<div class="company-box"><p class="company-name-t"><a rel="nofollow" href="http://company.zhaopin.com/%E4%B8%8A%E6%B5%B7%E5%B7%A8%E4%BC%98%E4%BF%A1%E6%81%AF%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8_CC355086418.htm" target="_blank">上海巨优信息科技有限公司</a></p><ul class="terminal-ul clearfix terminal-company mt20"><li><span>公司规模:</span><strong>20-99人</strong></li><li><span>公司性质:</span><strong>民营</strong></li><li><span>公司行业:</span><strong><a target="_blank" href="http://jobs.zhaopin.com/beijing/in160100/">通信/电信运营、增值服务</a></strong></li><li><span>公司主页:</span><strong><a rel="nofollow" href="http://www.g-best.com.cn/" target="_blank">http://www.G-best.com.cn</a></strong></li><li><span>公司地址:</span><strong>上海市徐汇区桂林路396号中核浦原科技园3号楼101室<br></strong></li></ul><!--是否是反馈通--><input type="hidden" id="displayRegionScopeId" name="displayRegionScopeId" value="0">
</div>

定位的话,直接找到class中含有terminal-company的ul标签,然后按照li标签的顺序或者按照中文文字匹配到企业基本信息。

职位描述信息

<div class="tab-inner-cont"><!-- SWSStringCutStart --><div style="FONT-SIZE: 12px"><strong>任职要求:</strong></div><div style="FONT-SIZE: 12px"><br><div style="WORD-WRAP: break-word; FONT-FAMILY: Verdana; WORD-BREAK: break-all; LINE-HEIGHT: 18px; BACKGROUND-COLOR: rgb(255,255,255)">1、1年以上IT行业的售经验,以通讯产品及服务器产品为主;<br>2、熟悉Siemens,NEC, Panasonic,Alcatel等PBX 机型,具有VOIP组网的相关销售经验;具备专业客户销售技巧;擅长与客户交流并能迅速整合客户所需资源;</div><div style="WORD-WRAP: break-word; FONT-FAMILY: Verdana; WORD-BREAK: break-all; LINE-HEIGHT: 18px; BACKGROUND-COLOR: rgb(255,255,255)">3、熟悉思科、华为、Alcatel等数据交换机,具有相关销售经验;具备专业客户销售技巧;擅长与客户交流并能迅速整合客户所需资源;&nbsp;<br>4、具备良好人际交往、市场策划、方案演讲、商务谈判,有强烈的赢单欲望,乐于陌生人交流,善于沟通,性格稳重、勤奋,能够承受较大销售业绩压力。<br>5、有销售同类语音交换机PBX、数据交换机&nbsp;产品经验者优先。</div></div><div style="FONT-SIZE: 12px"><br><strong>岗位职责:</strong></div><div style="FONT-SIZE: 12px"><br>1、负责本地区维护老客户,拓展新市场,建立与扩大销售网络,提升销售业绩,完成总部或分公司交付的销售任务; <br>2、建立和维护本地区的客户关系,树立良好的公司口碑和品牌形象;<br>3、负责项目投标的运作,包括商务文件的起草和整个标书的制作与审定;负责商务合同的起草、签署和项目收款工作;<br>4、高标准地为客户提供优质服务和妥善处理客户投诉,以提高客户的满意度;<br>5、不断学习新知识与新技术,提升自身的专业能力与职业素质;</div><div style="FONT-SIZE: 12px">&nbsp;</div><div style="FONT-SIZE: 12px"><strong>工作地点:</strong>&nbsp;北京</div><!-- SWSStringCutEnd --><b>工作地址:</b><h2>北京市丰台区南三环西路16号搜宝商务中心2号楼2608室&nbsp;<a href="javascript:fnOpenMiniMap('','','北京','31.167743','121.417537');" onclick="dyweTrackEvent('bjobsdetail14gb', 'showjobmap');" class="see-map">查看职位地图</a></h2><p><button id="applyVacButton1" class="button-small" title="申请职位" onclick="zlzp.searchjob.ajaxApplyBrig3('1');dyweTrackEvent('bjobsdetail14gb','directapply_middle');"></button></p>
</div>

这个也好说,直接找到class="tab-inner-cont",然后自动排除所有标签,只获取文本信息就够了。
需要注意的是,源码里有2个class为tab-inner-cont的div,第1个是职位描述,第2个是企业简介。

企业简介

<div class="tab-inner-cont" style="display:none;"><h5><a rel="nofollow" href="http://company.zhaopin.com/%E4%B8%8A%E6%B5%B7%E5%B7%A8%E4%BC%98%E4%BF%A1%E6%81%AF%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8_CC355086418.htm" onclick="recordOutboundLink(this, 'terminalpage', 'tocompanylink4');" target="_blank">上海巨优信息科技有限公司</a><a target="_blank" class="color-blue fr see-other-job" href="http://company.zhaopin.com/%E4%B8%8A%E6%B5%B7%E5%B7%A8%E4%BC%98%E4%BF%A1%E6%81%AF%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8_CC355086418.htm" rel="nofollow" onclick="recordOutboundLink(this, 'terminalpage', 'tocompanylink2');">该公司其他职位</a></h5><p></p><div style="FONT-SIZE: 12px">&nbsp; &nbsp; 上海巨优信息科技有限公司是一家专业的企业通信设备供应商及产品服务商,提供包括语音、数据、多媒体等各类专网设备。公司为各种类型的企业提供适用的通信及数据网络融合方案:宾馆、医院、大、中型企业、小型商务办公、政府机关等。<br>&nbsp; &nbsp; 巨优信息是法国阿尔卡特朗讯公司企业通信系统全国金牌代理商,同时也是华为、HP、思科等IT国际知名品牌的核心合作伙伴。</div><div style="FONT-SIZE: 12px">&nbsp; &nbsp; 公司拥有一支经阿尔卡特认证的工程师团队,其中多名工程师同时拥有思科、华为的认证证书。专业的管理、专业的人才,构建了专业的客户培训服务体系,专业的品质与完善的服务保障体系为公司赢得了长期友好合作的客户伙伴。公司技术部以其雄厚的技术实力、丰富的方案实施经验为用户提供多种类型的语音通信、组网、IP统一通信、数据网络等方案的设计与集成服务,并为用户提供端到端的全面解决方案。<br>&nbsp; &nbsp; 我司自成立以来,业务发展迅速,业务已分布至全国各地,有效地增强了我司在中国大陆地区的客户综合服务能力。集售前、售中、售后服务于一身的营销服务网络,为用户提供了全面周到的专业化服务。与此同时,我司拥有遍布全国各地的客户资源及核心合作伙伴,并且造就了出色的销售团队。<br>&nbsp; &nbsp; 巨优科技与世界最先进通讯技术同步,为国内商业用户提供一流的产品技术及服务品质,我们的理念是“客户至上、勇于创新、精诚合作、尽职尽责!” <br>&nbsp; &nbsp; 巨优科技一贯秉承“创新、开拓、最佳性价比的产品;诚挚服务快速成长性的市场;矢志成为一流的通信公司”的宗旨,不断推出符合市场发展趋势的特色产品,信守不断创新和帮助客户成功的核心价值观。&nbsp;<br>&nbsp;</div><p></p><h3></h3><p></p>
</div>

上面说过了,职位描述的class也为tab-inner-cont,所以获取的时候按顺序取值就好了。

网页源码解析 - 企业主页

智联招聘的企业主页分为2种:普通主页和VIP主页。VIP主页是智联招聘里唯一能够让企业自己定制的页面了。
这也就形成了千奇百怪的源码,分析起来并不容易。不过好在企业的基本信息,在招聘页面就已经获得了。
剩下唯一需要的信息就是企业的所有招聘信息了,也是非常重要的地方。
招聘信息在2种不同主页中,在源码中也分为了2种构建方式:

  • 普通主页:正常的tag循环陈列

  • VIP 主页:在javascript中以list列表变量形式储存,并动态显示出来。

不过说回来,这也是不确定的解析,因为变化太多了,我只是随机打开了一些页面参考,不能代表全部。其实,最好的方法是在搜索页面直接按公司名称搜索,就得到他所有的招聘信息了。

那么下面开始进行2种源码的分析。

普通企业主页

<div class="part4 positionList" id="morecity">
<h3><span class="jobNameT">职位名称</span><span class="comNameT">公司名称</span><span class="jobPayT">职位月薪</span><span class="jobAddrT">工作地点</span><span class="publishTimeT">发布日期</span>
</h3>
<!--1个职位详情对应一个类名为positionListContent的div-->
<div class="positionListContent" id="positionlist_530"><div class="positionListContent1"><span class="jobName"><a href="http://jobs.zhaopin.com/552256928252361.htm" target="_blank">数据库工程师</a></span><span class="comName">民信阿里信息咨询(北京)有限公司</span><span class="jobPay">15001-20000元</span><span class="jobAddr">北京</span><span class="publishTime">2015-12-12</span><div class="clearFloat"></div></div><div class="cLeft"><span>地点:北京</span><span>公司性质:民营</span><span>公司规模:1000-9999人</span><span>经验:3-5年</span><span>学历:本科</span><span>职位月薪:15001-20000元</span><p>岗位职责:
  1、公司核心数据库的管理,保证数据库正常运转和数据的安全;包括安装、配置、升级,数据备份、恢复,性能监控分析调优等;
2、参与开发设计,负责数据结构设计;
3、负责公司数据仓库的建设。     任职要求:
  1、具有三年以上MySQL工作经验;
2、精通MySQL数据库的运行机制和体系架构;
3、精...</p></div>
</div>

可以看到,大容器是class中含有positionList的div。其中每条招聘信息都是class="positionListContent"的div,职位链接其实非常好找,找到class="jobName"的span标签获取其下a链接的href地址就好了。

VIP企业主页

实际上VIP企业主页也不全都是以下的构建方式,发现了一些少数的大公司,会完全不一样,通过代码来看,是真没什么办法的。。。

<SCRIPT language=JavaScript>
var arrJobList =
[
["高级前端工程师(js开发)","http://jobs.zhaopin.com/147164943250563.htm?ssidkey=y&ff=02&ss=101","北京","530","软件/互联网开发/系统集成","160000","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250563000"],["php开发工程师(接受应届生)","http://jobs.zhaopin.com/147164943250562.htm?ssidkey=y&ff=02&ss=101","北京","530","软件/互联网开发/系统集成","160000","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250562000"],["课程顾问(销售类,月薪6000-15000,提供意向资源,地点西二旗)","http://jobs.zhaopin.com/147164943250696.htm?ssidkey=y&ff=02&ss=101","北京","530","咨询/顾问/调研/数据分析","2140000","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250696000"],["C++开发工程师(pc端,接受应届生)","http://jobs.zhaopin.com/147164943250785.htm?ssidkey=y&ff=02&ss=101","北京","530","软件/互联网开发/系统集成","160000","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250785000"],["高级人事专员(偏企业文化方向)","http://jobs.zhaopin.com/147164943250700.htm?ssidkey=y&ff=02&ss=101","北京","530","人力资源","5002000","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250700000"],["管理培训生(渠道区域经理方向)","http://jobs.zhaopin.com/147164943250452.htm?ssidkey=y&ff=02&ss=101","北京","530","销售管理","7001000","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250452000"],["营销管理培训生(课程顾问方向)","http://jobs.zhaopin.com/147164943250084.htm?ssidkey=y&ff=02&ss=101","北京","530","销售业务","4010200","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250084000"],["咨询客服(欢迎优秀应届毕业生)","http://jobs.zhaopin.com/147164943250080.htm?ssidkey=y&ff=02&ss=101","北京","530","客服/售前/售后技术支持","4000000","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250080000"],["班主任","http://jobs.zhaopin.com/147164943250128.htm?ssidkey=y&ff=02&ss=101","北京","530","教育/培训","2090000","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250128000"],["数据库管理员","http://jobs.zhaopin.com/147164943250208.htm?ssidkey=y&ff=02&ss=101","北京","530","IT运维/技术支持","200500","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250208000"],["管理培训生(校区营销主任方向)","http://jobs.zhaopin.com/147164943250200.htm?ssidkey=y&ff=02&ss=101","北京","530","销售管理","7001000","北京简单科技有限公司","14716494","2015-12-12","0","CC147164943J90250200000"],["网站产品经理","http://jobs.zhaopin.com/147164943250679.htm?ssidkey=y&ff=02&ss=101","北京","530","互联网产品/运营管理","160200","北京简单科技有限公司","14716494","2015-12-11","0","CC147164943J90250679000"],
["空","空","空","空","空","空","空","空","空","空","空"]
];
var HotJobs = ",,";
var ShowDeptInfo = ",,";
var ShowJobInfo = ",,";
function BuildJlist(){var SHTML,EHTML,JobHTML;SHTML = "<table width=\"100%\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";EHTML = "</table>";JobHTML = "<tr>";var numJob = 0;for (var i = 0; i <= arrJobList.length-2; i++){if ( ((ShowJobInfo==",,")?true:(ShowJobInfo.search(arrJobList[i][10])>=0)) && ((ShowDeptInfo==",,")?true:(ShowDeptInfo.search(arrJobList[i][7])>=0)) ) {JobHTML = JobHTML + "<td width=\"100%\"><table width=\"94%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"table-layout:fixed;border-collapse:collapse;\"><tr><td class=\"jobclass\" style=\"overflow:hidden;text-overflow:ellipsis;\" title=\""+""+" "+arrJobList[i][0]+" "+""+"\"><nobr>&gt;&gt; "+""+"<a href=\""+arrJobList[i][1]+"\" target=\"_blank\">"+arrJobList[i][0]+"</a> "+""+isvip(arrJobList[i][9])+ishot(arrJobList[i][10])+"<\/td><\/tr><\/table><\/td>";numJob++;if (numJob%1==0){JobHTML = JobHTML + "<\/tr>";}}}if(numJob%1!=0){JobHTML = JobHTML + "<\/tr>";}JobHTML = SHTML + JobHTML + EHTML;document.getElementById("joblist").innerHTML = JobHTML;
}
</SCRIPT>

可以看到,该企业所有的招聘信息都存在Javascript脚本中的叫arrJobList的变量里了。变量的格式为:arrJobList=[[第1条招聘信息],[第2条招聘信息]],是列表嵌套列表。而每条招聘信息数据的内容为:["职位名称","招聘网址","所在地点","城市代码","行业名称","行业代码","企业名称","企业代码","发布日期","0","未知编号"]
其实这个地方,难点就在于怎么在python中获取Javascript脚本中的变量……

智联招聘数据爬取准备(2)-招聘信息页面及企业主页源码解析相关推荐

  1. Python数据爬取之0基础小白实战(三)源码解析

    前两篇(一)软件安装.(二)初窥门槛我解决了软件版本不匹配的问题并学习关键技术.找到重要源码,完成了程序思路总体设计,本篇废话不多说,我们直接上源码. 任务描述 获取2015-2020年通过申请的国家 ...

  2. seleniummitmproxy实现智联招聘数据爬取

    目录 1 智联招聘数据爬取难点 1.1 动态网页 1.2 复杂的API接口 1.3 selenium 2 智联招聘数据爬取的简便路径 3 mitmproxy的抓包操作 3.1 mitmproxy的安装 ...

  3. 招聘数据爬取、数据处理与可视化(v2--解析JS渲染页面)

    招聘数据爬取.数据处理与可视化(v2--解析JS渲染页面) 更新说明 程序说明 数据爬取 观察网页结构 页面解析 将数据写入csv文件中 通过观察页面链接,爬取所有页面 爬虫程序完整代码 爬取数据结果 ...

  4. python爬取豆瓣读书top250并保存xls(含源码)

    python爬取豆瓣读书top250并保存xls(含源码) 又是霍霍豆瓣的一天O(∩_∩)O哈哈~. 目标网站:http://book.douban.com/top250/ 全军出击!!! 首先,按下 ...

  5. 智联招聘数据爬取准备(1)-智联招聘搜索列表源码解析

    网页源码解析 - 智联招聘搜索列表 一开始必须要解析智联招聘搜索列表页,从这里更方便实现各种深层级数据抓取. 网页地址是: http://sou.zhaopin.com/jobs/searchresu ...

  6. pyspider实战:爬取想要的妹纸图(附源码)

    pyspider基本使用 爬取网页:https://www.99tu.com/sjbz/meinv/的妹纸图片及其标题 网页介绍 ​ "久久图库是一个崭新而夺目的图片视觉冲击平台.汇聚全球最 ...

  7. python3爬取墨迹天气并发送给微信好友,附源码

    需求: 1. 爬取墨迹天气的信息,包括温湿度.风速.紫外线.限号情况,生活tips等信息 2. 输入需要查询的城市,自动爬取相应信息 3. 链接微信,发送给指定好友 思路比较清晰,主要分两块,一是爬虫 ...

  8. 拉勾网招聘数据爬取(公布源码)

    公众号爬取拉勾网招聘数据,本文只讲重点,因为爬任何一个网站,可能最重要的就是遇到反爬怎么办,也就是第一步能不能爬下来数据的问题,本文讲如何爬取拉勾招聘数据 环境及软件:Linux乌邦图.redis.m ...

  9. python3APP爬虫--爬取王者荣耀小姐姐cosplay照片(附源码)

    文章目录 一.絮叨 1.接上 2.启下 二.代码 三.查看数据 四.总结 一.絮叨 1.接上 自己挖的坑,自己填.上一篇python3APP爬虫–爬取王者荣耀英雄图片(附源码)爬取了王者荣耀英雄图片, ...

最新文章

  1. java nio 写事件_Java NIO
  2. 用户 Outlook 2007 附件突然不能预览,在国外网站找了解决方案。
  3. 介绍一个非常实用的Visual Studio Code扩展 - indent-rainbow
  4. java流与文件——流
  5. Typescript学习笔记(五) 模块机制
  6. 【OpenGL4.0】GLSL-使用Uniform Block实现着色器的数据共享
  7. 国嵌视频光盘及源码网盘下载地址-续
  8. 花生油和菜籽油哪个更健康?
  9. ASoC Machine驱动代码框架图
  10. Android Studio实现音乐播放器2.0
  11. 【渝粤教育】国家开放大学2018年春季 0692-22T化工设备机械基础 参考试题
  12. 12平键标准尺寸规格表_平键标准尺寸规格表
  13. ai背景合成_AI突破次元壁又火了!《飞屋环游记》动漫角色一秒变真人,网友:小罗的“猫王发型”有点酷...
  14. 学北邮计算机未来四十岁,2020年北京邮电大学计算机研究生保研心得
  15. 强势崛起!这所年轻大学南科大,是中国高教的奇迹!
  16. 筷子兄弟--11度青春系列电影之老男孩,相信你会感动!!
  17. 联想拯救者 独显模式下亮度无法调节 解决方法记录
  18. 大专生程序员找工作的一点小建议 知识分享 经验分享
  19. ibm service guide
  20. 【读码JDK】Java synthetic的介绍

热门文章

  1. 1号店周年庆订单爆仓背后的幸福
  2. 位置服务器的使用方法,Excel Server Tutorial
  3. CRM系统架构是怎样
  4. CSS篇之波浪形文字
  5. 黑马程序员_java01_基本知识点
  6. (转)Eclipse快捷键
  7. ZYNQ(PS) 动态加载APP之一
  8. NURBS曲面拟合、平滑、网格控制点反算、法面误差计算一网打尽,解决曲面加工、蒙皮、逆向工程、叶片拟合问题
  9. 软件测试年月日白盒测试,软件测试方法 白盒测试
  10. kali网络端口大全