首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >爬取了某网2w条招聘信息,看看有什么工作适合你​。​

爬取了某网2w条招聘信息,看看有什么工作适合你​。​

作者头像
Python与Excel之交
发布于 2021-08-05 03:50:38
发布于 2021-08-05 03:50:38
33300
代码可运行
举报
文章被收录于专栏:Python与Excel之交Python与Excel之交
运行总次数:0
代码可运行

一、前言

又到一年一度的秋招了,受疫情的影响,就业难度大大增加,今天爬取2w前程无忧的招聘信息,看看有什么工作适合你。

前程无忧网址:https://search.51job.com/

本次爬取的信息包括广州,佛山、深圳、珠海、中山这五个城市的招聘信息。

具体链接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://search.51job.com/list/030200%252c040000%252c030500%252c030600%252c030700,000000,0000,00,9,99,+,2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=1&dibiaoid=0&line=&welfare=

二、分析网页

按照惯例,先点击下一页,看看链接是否发现变化。点击下一页后发现链接.html前面的1发生了变化。

再鼠标右键查看网页源代码,发现数据都在源代码中,基本可以确定是静态网页了。

这时还需要注意的是,虽然数据在网页源代码中,但是网页源代码的网页标签是和点击鼠标右键检查中看到的网页结构是不同的,所以需要要re正则表达式提取网页数据。

三、导包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
import re
import xlwt
import time

四、创建列表保存数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
job_name_t_data = []
job_href_url_data = []
company_name_data = []
providesalary_text_t_data = []
attribute_text_t_data = []
jobwelf_list_data = []
updatedate_data = []

五、构建反反爬虫措施,并请求数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
headers = {
    'User-Agent': 'Googlebot'
}
for i in range(1, 401):
    url = 'https://search.51job.com/list/030200%252c040000%252c030500%252c030600%252c030700,000000,0000,00,9,99,+,2,{}.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=1&dibiaoid=0&line=&welfare='.format(i)
    time.sleep(2)

    response = requests.get(url, headers=headers).text

Googlebot是谷歌的网页抓取机器人,类似于中国的百度蜘蛛,加进User-Agent里,可以轻松的跳过一些网站的反爬虫措施。

六、解析数据

网页结构有的像json数据,所以直接复制数据以及前面的标签下来,用.*?万能匹配进行提取。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    # 详情页链接
    job_href = re.findall(r'"job_href":"(.*?)"', response)
    # 替换链接中的斜杠
    job_href_url = [i.replace(r'\/', '/') for i in job_href]
    # 职位名称
    job_name = re.findall('"job_name":"(.*?)"', response)
    job_name_t = [x.replace(r'\/', '/') for x in job_name]
    # 公司名称
    company_name = re.findall('"company_name":"(.*?)"', response)
    # 薪资
    providesalary_text = re.findall('"providesalary_text":"(.*?)"', response)
    providesalary_text_t = [x.replace(r'\/', '/') for x in providesalary_text]  
    # 工作地址/经验要求/学历要求/招聘人数
    attribute_text = re.findall(r',"attribute_text":.*?(.*?)],', response)  
    attribute_text_t = [x.replace(r'\/', '/').replace('[', '') for x in attribute_text]
    # 福利
    jobwelf_list = re.findall('"jobwelf":"(.*?)"', response)  
    #发布时间
    updatedate = re.findall('"updatedate":"(.*?)"', response)

一个一个的遍历数据并保存在列表中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    for a,b,c,d,e,f,j in zip(job_name_t,company_name,providesalary_text_t,attribute_text_t,jobwelf_list,updatedate,job_href_url):
        job_name_t_data.append(a)
        company_name_data.append(b)
        providesalary_text_t_data.append(c)
        attribute_text_t_data.append(d)
        jobwelf_list_data.append(e)
        updatedate_data.append(f)
        job_href_url_data.append(j)

七、数据保存

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#创建工作簿
work_book = xlwt.Workbook(encoding='utf-8')
#创建名为招聘信息工作表
sheet = work_book.add_sheet('招聘信息')
#创建标题行
cool = ('职位名称', '公司名称', '薪资', '工作地址/经验要求/学历要求/招聘人数', '福利', '发布时间', '详情页链接')
#遍历cool,一个一个的传入招聘信息工作表的第一行
for i in range(0, 7):
    sheet.write(0, i, cool[i])
#抓取2w条招聘数据
for i in range(0, 20000):
    sheet.write(i + 1, 0, job_name_t_data[i])
    sheet.write(i + 1, 1, company_name_data[i])
    sheet.write(i + 1, 2, providesalary_text_t_data[i])
    sheet.write(i + 1, 3, attribute_text_t_data[i])
    sheet.write(i + 1, 4, jobwelf_list_data[i])
    sheet.write(i + 1, 5, updatedate_data[i])
    sheet.write(i + 1, 6, job_href_url_data[i])
work_book.save('招聘信息.xls')

预览下数据,包括标题行一共2万条数据。

八、结语

本文代码较为粗糙,有很多可以简洁的地方,适合新手入门。

前程无忧的网站和大部分的静态网页不同,前端代码与后端代码不相同,所以需要认真的分析网页,不然可能掉进网页的反爬虫的陷阱里。

个人认为,写爬虫最重要的一点是分析网页,如果网页没有分析对,可能你再怎么写都是做无用功。按照爬虫的基本步骤进行写爬虫是个很好的习惯,能大大的提高写爬虫的效率。

注:本文仅用于学习以及知识交流!如果侵权,请告知删除!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与Excel之交 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python 爬取前程无忧最新招聘数据 matplotlib数据分析与可视化
利用python爬取在前程无忧网搜索python关键字出现的最新的招聘数据,保存到本地Excel,进行数据查看和预处理,然后利用matplotlib进行数据分析和可视化。
叶庭云
2020/09/17
5.1K1
Python   爬取前程无忧最新招聘数据    matplotlib数据分析与可视化
符合自己的工作难找?取招聘网站数据,让你找到心仪的工作
现在的招聘网站很多,比如:拉勾网、Boss直聘、智联招聘、前程无忧等。那么多的网站,如何才能在众多招聘信息中找到符合自己的,或者说工作的相关要求。
松鼠爱吃饼干
2020/09/15
4820
符合自己的工作难找?取招聘网站数据,让你找到心仪的工作
python爬虫与数据可视化书(python大数据可视化)
之前写过篇爬取前程无忧职位信息并保存到Excel的博客, 这里仔细的讲讲并且增加可视化内容
全栈程序员站长
2022/07/28
9470
python爬虫与数据可视化书(python大数据可视化)
用python爬取前程无忧网,看看我们是否真的“前程无忧”?
利用python爬取在前程无忧网搜索python关键字出现的最新的招聘数据,保存到本地Excel,进行数据查看和预处理,然后利用matplotlib进行数据分析和可视化。
龙哥
2020/09/04
1.1K0
用python爬取前程无忧网,看看我们是否真的“前程无忧”?
实战篇 | 用Xpath,bs4,正则三种方式爬51job
最近整理一个爬虫系列方面的文章,不管大家的基础如何,我从头开始整一个爬虫系列方面的文章,让大家循序渐进的学习爬虫,小白也没有学习障碍.
龙哥
2019/10/24
6230
实战篇 | 用Xpath,bs4,正则三种方式爬51job
重难点 | Python基础知识点9 Python的封装继承多态,推荐收藏
封装: 描述某个对象的属性以及方法。 比如狗,狗的大小,颜色,这些东西就是他的属性,狗会叫,这是他的方法。 一般来说描述特征的都是这个对象的属性,描述行为就是方法。
龙哥
2019/09/24
5210
BS1074-基于网络爬虫+javaweb技术设计实现职业岗位大数据分析平台
本基于网络爬虫+javaweB的职业岗位大数据分析平台,系统主要采用python,java,springboot,mybatis,mysql数据库,html页面开发技术,系统前端界面主要采用echarts,html,css,javascript等技术实现,系统管理端界面主要采用JavaWeb技术实现,系统岗位数据主要采用Python开发网络爬虫程序采集前程无忧招聘网实现。
计算机程序优异哥
2023/09/18
2580
BS1074-基于网络爬虫+javaweb技术设计实现职业岗位大数据分析平台
用Xpath,bs4,正则三种方式爬51job
最近和星球球友一起做了一个爬取51job上的Python招聘职位的项目实战,数据如下:
龙哥
2018/10/22
8900
用Xpath,bs4,正则三种方式爬51job
【一起学Python】爬取前程无忧招聘信息并写入Excel
说在前面:这是依旧是来自Ricky的爬虫小实战。预告一下未来的几个主要内容吧,打算重写一下微信公众号后台,然后写几篇教程;之后是有关分词、词云、情感分析的一些内容;然后也有打算研究一下小程序,坑好多,
不二小段
2018/04/08
1.4K0
【一起学Python】爬取前程无忧招聘信息并写入Excel
爬虫爬取智联招聘的职位信息(基础)
简单爬取智联招聘的内容,爬之前在网上找关于这方面的代码,最后发现都不行,智联现在的招聘信息都是js加载,直接请求响应不到响应的内容,只能使用selenium,通过selenium加载,网页加载完成后返回page_source。
andrew_a
2019/07/30
8490
爬虫爬取智联招聘的职位信息(基础)
Spider与OpenPyXL的结合1.OpenPyXL基础操作操作数据保存到文件2.爬虫与OpenPyXL的结合(爬取前程无忧网站招聘数据,存储Excel表格中)使用同样的分析方法爬取智联招聘岗位信
通过上述的语句,将返回在A4处的单元格,如果不存在将在A4新建一个。 单元格的值也可以直接赋值
Python攻城狮
2018/08/23
1.1K0
Spider与OpenPyXL的结合1.OpenPyXL基础操作操作数据保存到文件2.爬虫与OpenPyXL的结合(爬取前程无忧网站招聘数据,存储Excel表格中)使用同样的分析方法爬取智联招聘岗位信
利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论?
我经常会收到读者关于一系列咨询运维方面的事情,比如:杰哥,运维到底是做什么的呀?运维的薪资水平/ 待遇怎么样呢?杰哥帮忙看下这个岗位的招聘需要对于小白来说,能否胜任的了呢?等等。
杰哥的IT之旅
2020/07/14
3760
利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论?
Python爬虫超详细讲解(零基础入门,老年人都看的懂)
网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。
BookSea
2023/07/21
1.7K0
Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。 原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。
Python小二
2020/09/08
8200
Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
Selenium 动态爬取51job招聘信息
通过selenium的find_element_by_id 找到 id = 'kwdselectid',然后send_keys('关键字')即可模拟用户输入
py3study
2020/11/03
1.4K1
Selenium 动态爬取51job招聘信息
【Python爬虫】 电影Top250信息
BeautifulSoup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是python对象,所有对象可以归纳为4种
司六米希
2022/11/15
5280
【Python爬虫】 电影Top250信息
[编程经验] 基于bs4的拉勾网AI相关工作爬虫实现
年初大家可能是各种跳槽吧,看着自己身边的人也是一个个的要走了,其实是有一点伤感的。人各有志吧,不多评论。这篇文章主要是我如何抓取拉勾上面AI相关的职位数据,其实抓其他工作的数据原理也是一样的,只要会了这个,其他的都可以抓下来。一共用了不到100行代码,主要抓取的信息有“职位名称”,“月薪”,“公司名称”,“公司所属行业”,“工作基本要求(经验,学历)”,“岗位描述”等。涉及的工作有“自然语言处理”,“机器学习”,“深度学习”,“人工智能”,“数据挖掘”,“算法工程师”,“机器视觉”,“语音识别”,“图像处理
用户1622570
2018/04/11
6960
[编程经验] 基于bs4的拉勾网AI相关工作爬虫实现
python爬虫 senlenium爬取拉勾网招聘数据
用selenium爬虫实现,输入任意关键字,比如 python 数据分析,点击搜索,得到的有关岗位信息,爬取下来保存到Excel。
叶庭云
2020/09/17
1.5K0
python爬虫   senlenium爬取拉勾网招聘数据
手把手教你JS逆向搞定字体反爬并获取某招聘网站信息
网站的反爬措施有很多,例如:js反爬、ip反爬、css反爬、字体反爬、验证码反爬、滑动点击类验证反爬等等,今天我们通过爬取某招聘来实战学习字体反爬。 今日网站
Python进阶者
2021/12/01
8670
手把手教你JS逆向搞定字体反爬并获取某招聘网站信息
真特么激动第一个爬虫----爬取豆瓣电影top250
之前一直对爬虫有兴趣,但是一直没有真正静下心来去好好学习过,这一段时间跟着b站上的一个教程做了自己人生中第一个爬虫程序,还是很有成就感的。
萌萌哒的瓤瓤
2020/08/26
4860
真特么激动第一个爬虫----爬取豆瓣电影top250
推荐阅读
Python 爬取前程无忧最新招聘数据 matplotlib数据分析与可视化
5.1K1
符合自己的工作难找?取招聘网站数据,让你找到心仪的工作
4820
python爬虫与数据可视化书(python大数据可视化)
9470
用python爬取前程无忧网,看看我们是否真的“前程无忧”?
1.1K0
实战篇 | 用Xpath,bs4,正则三种方式爬51job
6230
重难点 | Python基础知识点9 Python的封装继承多态,推荐收藏
5210
BS1074-基于网络爬虫+javaweb技术设计实现职业岗位大数据分析平台
2580
用Xpath,bs4,正则三种方式爬51job
8900
【一起学Python】爬取前程无忧招聘信息并写入Excel
1.4K0
爬虫爬取智联招聘的职位信息(基础)
8490
Spider与OpenPyXL的结合1.OpenPyXL基础操作操作数据保存到文件2.爬虫与OpenPyXL的结合(爬取前程无忧网站招聘数据,存储Excel表格中)使用同样的分析方法爬取智联招聘岗位信
1.1K0
利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论?
3760
Python爬虫超详细讲解(零基础入门,老年人都看的懂)
1.7K0
Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
8200
Selenium 动态爬取51job招聘信息
1.4K1
【Python爬虫】 电影Top250信息
5280
[编程经验] 基于bs4的拉勾网AI相关工作爬虫实现
6960
python爬虫 senlenium爬取拉勾网招聘数据
1.5K0
手把手教你JS逆向搞定字体反爬并获取某招聘网站信息
8670
真特么激动第一个爬虫----爬取豆瓣电影top250
4860
相关推荐
Python 爬取前程无忧最新招聘数据 matplotlib数据分析与可视化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验