前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:Python学习与数据挖掘

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun

为方便大家清晰了解当前就业市场,小编对招聘网址51job进行了数据爬取,共计获取5万份招聘数据,代码、数据仅用于技术交流使用,需要数据和完整版代码的同学,公众号后台回复:招聘代码。我们将基于爬取的数据,比较了不同岗位的薪资、学历要求,分析比较了不同区域、行业对相关人才的需求情况,分析比较了不同岗位的知识、技能要求等。

开发工具

  • python版本:3.6.8
  • 编辑器:pycharm

相关模块

import requests
import pandas as pd
from lxml import etree
import time
import warnings

网页分析

在爬取网页数据之前,需要对网页进行分析,不断翻页我们可以发现网页为GET请求,URL有如下规律:

'https://search.51job.com/list/000000,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE,2,4.html?'
'https://search.51job.com/list/000000,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE,2,3.html?'
'https://search.51job.com/list/000000,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE,2,2.html?'
'https://search.51job.com/list/000000,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE,2,1.html?'

数据获取

分析网页后,我们要确立爬取思路、爬取字段、使用工具等,详情如下:

  • 爬取思路:先针对某一页数据的一级页面做一个解析,然后再进行二级页面做一个解析,最后再进行翻页操作;

  • 爬取字段:公司名、岗位名、工作地址、薪资、发布时间、工作描述、公司类型、员工人数、所属行业;

  • 使用工具:Python+requests+lxml+pandas+time;

  • 网站解析方式:Xpath;

相关代码

import requests
import pandas as pd
from lxml import etree
import time
import warnings
warnings.filterwarnings("ignore")
job_name = dom.xpath('//div[@class="dw_table"]/div[@class="el"]//p/span/a[@target="_blank"]/@title')
# 2、公司名称
company_name = dom.xpath('//div[@class="dw_table"]/div[@class="el"]/span[@class="t2"]/a[@target="_blank"]/@title')
# 3、工作地点
address = dom.xpath('//div[@class="dw_table"]/div[@class="el"]/span[@class="t3"]/text()')
# 4、工资
salary_mid = dom.xpath('//div[@class="dw_table"]/div[@class="el"]/span[@class="t4"]')
salary = [i.text for i in salary_mid]
# 5、发布日期
release_time = dom.xpath('//div[@class="dw_table"]/div[@class="el"]/span[@class="t5"]/text()')
# 6、获取二级网址url
deep_url = dom.xpath('//div[@class="dw_table"]/div[@class="el"]//p/span/a[@target="_blank"]/@href')
RandomAll = []
JobDescribe = []
CompanyType = []
CompanySize = []
Industry = []
for i in range(len(deep_url)):web_test = requests.get(deep_url[i], headers=headers)web_test.encoding = "gbk"dom_test = etree.HTML(web_test.text)# 7、爬取经验、学历信息,先合在一个字段里面,以后再做数据清洗。命名为random_allrandom_all = dom_test.xpath('//div[@class="tHeader tHjob"]//div[@class="cn"]/p[@class="msg ltype"]/text()')# 8、岗位描述性息job_describe = dom_test.xpath('//div[@class="tBorderTop_box"]//div[@class="bmsg job_msg inbox"]/p/text()')# 9、公司类型company_type = dom_test.xpath('//div[@class="tCompany_sidebar"]//div[@class="com_tag"]/p[1]/@title')# 10、公司规模(人数)company_size = dom_test.xpath('//div[@class="tCompany_sidebar"]//div[@class="com_tag"]/p[2]/@title')# 11、所属行业(公司)industry = dom_test.xpath('//div[@class="tCompany_sidebar"]//div[@class="com_tag"]/p[3]/@title')

数据展示


小编分享两点经验,首先:由于爬取页数较多,可以尝试利用多进程、多线程进行爬取,来提高爬取效率;其次:为了代码的鲁棒性,要加入异常处理机制。

python爬取51job关于python的招聘信息相关推荐

  1. python爬取boss直聘招聘信息_年底啦,利用Python爬取Boss直聘的招聘信息,为明年跳槽做准备...

    原标题:年底啦,利用Python爬取Boss直聘的招聘信息,为明年跳槽做准备 前言 为什么都说程序员的薪资高,但是刚开始入职的你,薪资并不是自己想象中的那样,首先是你的工作经验不足,其次就是需要不断的 ...

  2. python爬取前程无忧当日的全部招聘信息

    用了几天时间写成的爬取前程无忧的当日的招聘信息,通过多线程的方式同时爬取多个城市的信息,作为资料保存下来,一下是完整代码,可以直接复制粘贴爬取 这里爬取的数据条件是是24小时内,周末双休的,会在当前文 ...

  3. Python 爬取 13966 条运维招聘信息,这些岗位最吃香!

    经常会收到读者关于一系列咨询运维方面的事情,比如:运维到底是做什么的呀?运维的薪资水平/ 待遇怎么样呢?能帮忙看下这个岗位的招聘需要对于小白来说,能否胜任的了呢?等等. 杰哥带着一种好奇心的想法,结合 ...

  4. 使用Python爬取51job招聘网的数据

    使用Python爬取51job招聘网的数据 进行网站分析 获取职位信息 存储信息 最终代码 进行网站分析 进入https://www.51job.com/这个网站 我在这就以python为例搜索职位跳 ...

  5. Python笔记-爬取Boss直聘的招聘信息

    Python笔记-爬取Boss直聘的招聘信息 最近迷上了爬虫,爬取招聘信息,存在MongoDB上 代码思路和上一篇爬取酷狗TOP500差不多,但是在使用CSS选择器的时候,有两组信息是连在一起,所以使 ...

  6. python爬取51job的示例

    如何爬取51job的岗位和薪资信息,可参考以下代码 import json import re import sqlite3 import urllib.error import urllib.req ...

  7. python爬房源信息_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  8. Python爬取豆瓣电影top250的电影信息

    Python爬取豆瓣电影top250的电影信息 前言 一.简介 二.实例源码展示 小结 前言 相信很多小伙伴在学习网络爬虫时,老师们会举一些实例案例讲解爬虫知识,本文介绍的就是经典爬虫实际案例–爬取豆 ...

  9. python爬取并分析淘宝商品信息

    python爬取并分析淘宝商品信息 背景介绍 一.模拟登陆 二.爬取商品信息 1. 定义相关参数 2. 分析并定义正则 3. 数据爬取 三.简单数据分析 1.导入库 2.中文显示 3.读取数据 4.分 ...

  10. python制作pdf教程_学以致用:Python爬取廖大Python教程制作pdf!

    学以致用:Python爬取廖大Python教程制作pdf! python-tutorial-pdf 当我学了廖大的Python教程后,感觉总得做点什么,正好自己想随时查阅,于是就开始有了制作PDF这个 ...

最新文章

  1. 如何让敏捷中的每日站会发挥最大效果?
  2. Html2excel 1.4.1 发布,Html 转 Excel 工具包
  3. Oracle——20数据库恢复与备份
  4. Merge into的使用详解-你Merge了没有
  5. idft重建图像 matlab_利用 MATLAB 编程,打开一幅图像,对其进行 DFT 变换,并置其不同区域内的系数为零,进行 IDFT ,观察其输出效果。_学小易找答案...
  6. exchange 2003 event id 1221
  7. mySql 修改字段自增
  8. java 反射集合_Java反射的理解(六)-- 通过反射了解集合泛型的本质
  9. 汽车销售管理系统源码
  10. 论文排版中如何将公式居中,编号靠右
  11. java程序员首次使用mac M1
  12. 电脑端同时登陆两个微信(非网页版)
  13. [Power Query] 删除重复项
  14. 关于学术论文投稿中的 Cover Letter
  15. 栈的压入、弹出序列(Java)
  16. 1 invalid import format(s) Postman Collection Format v1 is no longer supported and can not be import
  17. 用摄像头实现远程监控咋搞不定呢
  18. 理科生应该这样写情书
  19. Mac系统怎样管理第三方字体
  20. 社群思维:如何打破边界

热门文章

  1. sessionbean+entitybean 在 jbx+wl7中调试笔记。
  2. 加州大学伯克利分校计算机科学硕士,加州大学伯克利分校计算机硕士申请条件是什么?...
  3. xlistview的使用
  4. 携程mysql架构_携程数据库高可用架构实践
  5. EventBus粘性事件
  6. 基于MATLAB的双重积分的数值求解
  7. Android Framework 音频子系统(11)耳麦插拔之声音通道切换
  8. 智能驾驶大数据是什么?传统车企如何升级?
  9. ServerPropertiesAutoConfiguration.class cannot be opened because it does not exist
  10. powerbi 线性回归_精选 | 实用炫酷的Power BI自定义图表