Python3爬取前程无忧招聘数据教程

文章来自群友 易某某 的投稿,在此表示感谢!
原文链接:https://blog.csdn.net/weixin_42572590/article/details/103443213

前几天,我发表了一篇名为《 基于Python|“数据分析岗位”招聘情况分析! (此为超链接,可以跳转) 的文章,看到这篇文章的时候,小伙伴们很是羡慕。

“我们也想要数据集进行数据处理与分析,最终结果可视化,但是苦于没有数据集。小样儿你的数据集能给我一份吗?

授人以鱼不如授人以渔,今天,严小样儿直接教大家爬取招聘数据集,代码详细,粘贴后run一下就出结果,数据集有了,想怎么分析怎么分析。一起来看看吧~


目录

    1、背景介绍

2、爬取数据保存到txt文件

(1)网页分析

(2)代码编写

(3)最终结果

3、爬取数据保存到excel文件

(1)代码编写

(2)最终结果

1、背景介绍

近几年掀起了一股Python风,各大网站、公众号等都在宣传和力挺Python。我开始挺抗拒的,别人越是这么说,我就偏不这么干。后面…由于毕设需要使用Python…结果,嗯!真香!!

好了,言归正传。本文主要爬取前程无忧大数据类相关职位的一些基本信息:岗位名称、公司名称、工作地点、薪资以及岗位发布时间。对于我们这种新生,爬取这种还是比较有成就感的。

2、爬取数据保存到txt文件

(1)网页分析

进入前程无忧招聘网站,搜索大数据,就会出现如下图1所示:

Python3爬取前程无忧招聘数据教程_第1张图片

图1 前程无忧数据类招聘页面

我们进入到这个网站后,需要关注两个地方,一是观察此网页的网址,二是查看此网页的源码。具体见下图2和图3:

Python3爬取前程无忧招聘数据教程_第2张图片

图2 网址分析

根据图2我们可以分析出:前程无忧分页的规律,我们分页爬取只要修改这里的数字即可!

Python3爬取前程无忧招聘数据教程_第3张图片

图3 源代码分析

根据图3我们可以分析出要想爬取我们想要的数据,就要分析这些数据在网页里面的规律,以此来写出正则表达式。

根据图3我们可以写出其正则表达式为:

1 pat='(.*?).*?(.*?).*?(.*?)'

(2)代码编写

通过前面的网页分析,我们已经发现网址规律,已经发现正则表达式规律。下面,我们就可以开始书写代码爬取数据啦!

 1#爬取前程无忧Python数据--写进.txt文件
 2import urllib.request
 3import re
 4
 5#获取源码
 6def get_content(page):
 7    url='https://search.51job.com/list/000000,000000,0000,00,9,99,%25E5%25A4%25A7%25E6%2595%25B0%25E6%258D%25AE,2,'+str(page)+'.html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare='
 8    html = urllib.request.urlopen(url).read().decode("GBK","ignore")#打开网址
 9    return html
10
11
12#读取此网页里面的内容并把正则表达式匹配的数据提取出来
13def get(html):
14    pat='(.*?).*?(.*?).*?(.*?)'
15    #pat='
(3)最终结果

Python3爬取前程无忧招聘数据教程_第4张图片

3、爬取数据保存到excel文件

前面的分析都是一模一样,唯一不同的就是代码有点区别!

(1)代码编写
 1#爬取前程无忧Python数据--创建并写进excel文件
 2import urllib.request
 3import re
 4import xlwt #用来创建excel文档并写入数据
 5
 6#获取源码
 7def get_content(page):
 8    url='https://search.51job.com/list/000000,000000,0000,00,9,99,%25E5%25A4%25A7%25E6%2595%25B0%25E6%258D%25AE,2,'+str(page)+'.html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare='
 9    html = urllib.request.urlopen(url).read().decode("GBK","ignore")#打开网址
10    return html
11
12#读取此网页里面的内容并把正则表达式匹配的数据提取出来
13def get(html):
14    pat='(.*?).*?(.*?).*?(.*?)'
15    rst=re.compile(pat,re.S).findall(html)
16    return rst
17
18#爬取到的内容写入excel表格
19def excel_write(rst,index):
20    for item in rst:
21        for i in range(0,5):
22            ws.write(index,i,item[i]) #行,列,数据
23        print(index)
24        index += 1
25
26newTable="D:/Test/data/data1.xls" #表格名字
27wb = xlwt.Workbook(encoding='utf-8')    #创建excel文件,声明编码
28ws = wb.add_sheet('sheet1') #创建表格
29headData = ['招聘职位','公司','地址','薪资','日期'] #表头信息
30for colnum in range(0,5):
31    ws.write(0,colnum,headData[colnum],xlwt.easyxf('font:bold on')) #行,列
32
33for each in range(1,10):
34    index = (each-1) * 50 + 1
35    excel_write(get(get_content(each)),index)
36wb.save(newTable)
37print('程序运行结束!')

(2)最终结果

Python3爬取前程无忧招聘数据教程_第5张图片

看到这儿,很多小伙伴会说,数据集有了,可是不知道怎么分析啊?!严小样儿贴心地告诉你两种方法:

  1. 查看头条文章,内有Excel+Tableau教程;

  2. 链接送上,传送门祝你成功。

传送门1:基于Python|“数据分析岗位”招聘情况分析!

传送门2:日常答疑|Python向量化操作、矩阵运算

传送门3:分组排序求前三?TopN问题?一文教你MySQL各类排序操作

--END--

(扫码关注我,带你玩转数据分析)

Python3爬取前程无忧招聘数据教程_第6张图片

读完、看完,在看~

你可能感兴趣的:(Python3爬取前程无忧招聘数据教程)