Python爬虫抓取岗位信息~~叮~~毕业生看过来

2023-10-28

众所周知爬虫是用python编程语言实现的,主要用于网络数据的抓取和处理,例如爬取豆瓣电影TOP250、爬取小说等等...

而爬取岗位对于刚毕业的大学生也是非常有必要的,下面我们来看看如何实现吧(用到的编程工具是python3.7)

  • 目录

一、抓取岗位信息

1.导库

 2.模拟浏览器发起请求

​3.数据存储

二、数据清洗

三、数据可视化

1.学历要求玫瑰图

2.工作经验要求漏斗图

3.大数据城市需求分布图

四、项目改进

1.改进一

2.改进二


一、抓取岗位信息

1.导库

简单方法:cmd中输入pip install 库名

urllib.request用于模拟浏览器发起HTTP请求

xlwt库是支持python语言对excel表格操作的

re库则是用于对字符串进行正则表达式的匹配和替换

 pandas库是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。

读取爬取到的excel表格

 这一部分主要使用pycharts来编辑图表,主要库如下图

 2.模拟浏览器发起请求

首先指明请求爬取资源的域名'Host':'search.51job.com'

最关键的是使用正则表达式,弄懂字符串是如何存放到正确列表的,例如像findall,就是在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回列表

3.数据存储

 


二、数据清洗

 清洗数据,有空值就删除整行,信息错乱的也删除整行

经数据清洗后的数据


三、数据可视化

 使用pandas对第二个excel表格进行操作

  • \d 匹配一个Unicode数字,如果带re.ASCII,则匹配0-9
  • ? 匹配前面的字符0次或1次
  • * 匹配前面的字符0次或多次
  • + 匹配前面的字符1次或者多次

  

#add()用于添加图表的数据和设置各种配置项;

#render()生成.html文件;

#地图的基本使用方法,add_schema()表示增加一个框架,导入地图

#set_series_opts()可设置标签等

 #set_global_opts(),也可以设置很多配置项,如:标题、工具箱等

1.学历要求玫瑰图

2.工作经验要求漏斗图

3.大数据城市需求分布图

 


四、项目改进

以上就是爬岗位项目的所有内容啦,在做完这些内容以后,我和我的小伙伴还想到了一些改进,例如可以增加更多的数据清洗,或者做出更多方便分析岗位情况的图表;关键代码如下:

1.改进一

#转换薪资单位
b3 =u'万/年'
b4 =u'千/月'
li3 = a['薪资']
for i in range(0,len(li3)):
    try:
        if b3 in li3[i]:
            x = re.findall(r'\d*\.?\d+',li3[i])
            #print(x)
            min_ = format(float(x[0])/12,'.2f')              #转换成浮点型并保留两位小数
            max_ = format(float(x[1])/12,'.2f')
            li3[i][1] = min_+'-'+max_+u'万/月'
        if b4 in li3[i]:
            x = re.findall(r'\d*\.?\d+',li3[i])
            #print(x)
            #input()
            min_ = format(float(x[0])/10,'.2f')
            max_ = format(float(x[1])/10,'.2f')
            li3[i][1] = str(min_+'-'+max_+'万/月')
        print(i,li3[i])

    except:
        pass

2.改进二

min_s=[]                           #定义存放最低薪资的列表
max_s=[]                          #定义存放最高薪资的列表
for i in range(0,len(experience)):
    min_s.append(salary[i][0])
    max_s.append(salary[i][0])

#matplotlib模块如果显示不了中文字符串可以用以下代码
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

my_df = pd.DataFrame({'experience':experience, 'min_salay' : min_s, 'max_salay' : max_s})       #关联工作经验与薪资  
data1 = my_df.groupby('experience').mean()['min_salay'].plot(kind='line')
plt.show()
my_df2 = pd.DataFrame({'education':education, 'min_salay' : min_s, 'max_salay' : max_s})           #关联学历与薪资
data2 = my_df2.groupby('education').mean()['min_salay'].plot(kind='line')
plt.show()


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python爬虫抓取岗位信息~~叮~~毕业生看过来 的相关文章

  • 行未从树视图复制

    该行未在树视图中复制 我在按行并复制并粘贴到未粘贴的任何地方后制作了弹出复制 The code popup tk Menu tree opportunity tearoff 0 def row copy item tree opportun
  • 在 Numpy 中切片后确定结果数组的形状

    我很难理解在 numpy 中切片后如何确定结果数组的形状 例如 我使用以下简单代码 import numpy as np array np arange 27 reshape 3 3 3 slice1 array 1 2 1 slice2
  • python 中分割字符串以获得一个值?

    需要帮助 假设我在名为 input 的变量中有一个字符串 Sam Person name kind input split 通过执行上述操作 我得到两个具有不同字符串 Sam 和 Person 的变量 有没有办法只获取第一个值 name S
  • Python BeautifulSoup XML 解析

    我编写了一个简单的脚本来使用 BeautifulSoup 模块解析 XML 聊天日志 标准 soup prettify 工作正常 只是聊天日志中有很多绒毛 您可以在下面看到我正在使用的脚本代码和一些 XML 输入文件 Code import
  • 可以在 TensorFlow 中使用排名相关作为成本函数吗?

    我正在处理偶尔充满异常值的极其嘈杂的数据 因此我主要依靠相关性来衡量我的神经网络的准确性 是否可以明确使用诸如等级相关性 斯皮尔曼相关系数 之类的东西作为我的成本函数 到目前为止 我主要依赖 MSE 作为相关性的代理 我现在面临三个主要障碍
  • PIL Image.size 返回相反的宽度/高度

    使用PIL确定图像的宽度和高度 在特定图像上 幸运的是只有这一个 但这很麻烦 从 image size 返回的宽度 高度是相反的 图片 http storage googleapis com cookila 533ebf752b9d1f7c
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • 创建一个类似于 Tkinter 的表

    我希望创建类似于 Tkinter 中的表格的东西 但它不一定是这样的 例如 我想创建标题 Name1 Name2 Value 并在每个标题下面有几个空白行 然后 我希望稍后用我计算的值或名称的字符串值填充这些行 因此是标签 对于 Name2
  • 在径向(树)网络x图中查找末端节点(叶节点)

    给定下图 是否有一种方便的方法来仅获取末端节点 我所说的端节点是指那些具有一个连接边的到节点 我认为这些有时被称为叶节点 G nx DiGraph fromnodes 0 1 1 1 1 1 2 3 4 5 5 5 7 8 9 10 ton
  • 如何在python中检索aws批处理参数值?

    流程 Dynamo DB gt Lambda gt 批处理 如果将角色 arn 插入动态数据库 它是从 lambda 事件中检索的 然后使用submit job角色 arn 的 API 被传递为 parameters role arn ar
  • spacy 如何使用词嵌入进行命名实体识别 (NER)?

    我正在尝试使用以下方法训练 NER 模型spaCy识别位置 人 名和组织 我试图理解如何spaCy识别文本中的实体 但我无法找到答案 从这个问题 https github com explosion spaCy issues 491在 Gi
  • 更改 pandas 中多个日期时间列的时区信息

    有没有一种简单的方法可以将数据帧中的所有时间戳列转换为本地 任何时区 不是逐列进行吗 您可以有选择地将转换应用于所有日期时间列 首先 选择它们select dtypes https pandas pydata org pandas docs
  • 具有多个元素的数组的真值是二义性错误吗? Python

    from numpy import from pylab import from math import def TentMap a x if x gt 0 and x lt 0 5 return 2 a x elif x gt 0 5 a
  • 获取列表中倒数第二个元素[重复]

    这个问题在这里已经有答案了 我可以通过以下方式获取列表的倒数第二个元素 gt gt gt lst a b c d e f gt gt gt print lst len lst 2 e 有没有比使用更好的方法print lst len lst
  • Django 在选择列表更改时创建毫无意义的迁移

    我正在尝试使用可调用创建一个带有选择字段的模型 以便 Django 在选择列表更改时不会创建迁移 如中所述this https stackoverflow com questions 31788450 stop django from cr
  • Matplotlib Scatter - ValueError:RGBA 序列的长度应为 3 或 4

    我正在尝试为我的功能绘制图表 但不断收到此错误 ValueError RGBA sequence should have length 3 or 4 每当我只有 6 种形状时 代码就可以完美运行 但现在我将其增加到 10 种 它就不起作用了
  • Python 3.2 中 **kwargs 和 dict 有什么区别?

    看起来Python的很多方面都只是功能的重复 除了我在 Python 中的 kwargs 和 dict 中看到的冗余之外 还有什么区别吗 参数解包存在差异 许多人使用kwargs 并通过dict作为论据之一 使用参数解包 Prepare f
  • 如何在sphinx中启用数学?

    我在用sphinx http sphinx pocoo org index html与pngmath http sphinx pocoo org ext math html module sphinx ext pngmath扩展来记录我的代
  • 检查字符串是否只有字母和空格 - Python

    试图让 python 返回一个字符串仅包含字母和空格 string input Enter a string if all x isalpha and x isspace for x in string print Only alphabe
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如

随机推荐

  • Python3-基础- 包、闭包

    包 包 包是模块的一种形式 包的本质就是含有 py文件的文件夹 模块 模块就是封装好的具有特定功能的函数代码 例如sum 求和函数 py文件的两种功能 1 脚本 一个文件就是完整的程序 用来直接执行 2 模块 一个文件中存放的某些功能函数
  • Bp神经网络

    智能系统课程设计 老师要求做一个识别手写数字的神经网络算法 数据集是Mnist image数据集 在网上找了好多教程 结果仍然不清楚 后来在B站找了个视频才弄懂 传上来代码 以备以后回顾 Minss image newBpLearn cpp
  • 汇编基础(3)---常用汇编指令

    汇编指令集合太多 以下是常用的指令归纳 具体的用法还需要进一步整理 一 数据传输指令 它们在存贮器和寄存器 寄存器和输入输出端口之间传送数据 1 通用数据传送指令 MOV 传送字或字节 MOVSX 先符号扩展 再传送 MOVZX 先零扩展
  • 打工族必看!省钱订餐攻略,经本人亲测多日!

    这不是广告哦 不像其他平台一样需要扫码关注等等 我的常用平台是不需要关注的 只要领取即可使用 我已经在这个平台点外卖很久了 几个月了 平常我会在这个平台领取优惠券 和同事一起拼单下单 每个人能省下三四块钱 有时候多的话可以省下七八块钱 这个
  • 精妙布局,乐车邦领跑2017互联网汽车后市场

    2017年的汽车后市场可谓是冰火两重天 上半年资本寒冬持续 行业几乎没有融资新闻 下半年苏宁 京东等互联网巨头动作频频 市场重现热火朝天 冰火的洗礼 让玩家们备受煎熬 许多企业不堪重负 纷纷倒下 但也不乏一些企业愈战愈勇 成立仅2年多的乐车
  • Android SWT机制

    Android SWT机制 Android SystemServer Watchdog Timeout 安卓看门狗超时机制 Watchdog字面上是 看门狗 的意思 有做过嵌入式低层的朋友应该知道 为了防止嵌入式系统MCU里的程序因为干扰而
  • 观察者模式-猫捉老鼠(委托与事件)

    猫捉老鼠是一个典型的观察者模式的实现案例 在其中加入委托与事件的程序实现 将会提高代码的一个可读性 其下是代码实现 创建一个Cat类 using System using System Collections Generic using S
  • 华为OD机试 - 开放日活动、取出尽量少的球(Java)

    题目描述 某部门开展Family Day开放日活动 其中有个从桶里取球的游戏 游戏规则如下 有N个容量一样的小桶等距排开 且每个小桶都默认装了数量不等的小球 每个小桶装的小球数量记录在数组 bucketBallNums 中 游戏开始时 要求
  • Redis-基本数据类型与内部存储结构

    1 概览 Redis是典型的Key Value类型数据库 Key为字符类型 Value的类型常用的为五种类型 String Hash List Set Ordered Set 2 Redis内部内存管理 redisObject 核心对象 R
  • solidity 合约权限授权_智能合约:整数溢出、访问控制缺陷漏洞与跨合约调用漏洞...

    整数溢出 漏洞简介 简单来说 就是Solidity整形变量被赋值高于或者低于可以表示的范围时 值会发生改变 一般会溢出为2的uint类型次方 1 或者 0 上溢 会溢出为0下溢 会溢为2 n 1 如果是uint256 即为 2的256次方
  • Linux系统的常见命令记忆【Ubuntu】

    Linux系统的常见命令记忆 Ubuntu 一 最新的htop 内存 1 安装 2 直接输入htop 二 watch命令 1 有关watch的简介 2 选项说明 3 常用示例 显卡 cpu温度 三 后言 四 查看CPU架构 lscpu 五
  • 数字判断

    数字判断 指针为函数参数 题目描述 输入一个字符串 判断这个字符串是否一个完全整数值的字符串 例如输入 1234 那么表示整数1234 输入 12a3 就表示只是一个字符串 不是一个整数 要求编写函数isNumber 参数是一个字符指针 返
  • SQL研习录(24)——CHECK约束

    SQL研习录 24 CHECK约束 版权声明 一 CHECK约束 1 基本语法 版权声明 本文原创作者 清风不渡 博客地址 https blog csdn net WXKKang 一 CHECK约束 在数据库中 CHECK 约束是指约束表中
  • 前端ps切图,图文教程,详细。

    写在前面 本文主要内容是目前我所知道的切图技巧结合网上的资料 写出来分享一波 图文教程 多图 BB 很多人都会说 切图这个活倒底分给UI还是分给前端 虽然好的UI会给我们把图切好 但是他们切的图不一定百分之百符合我们的需求 所以我一直都觉得
  • Thinkpad win11截图快捷键win + sihft +s无反应

    参考 l联想知识库 Win11截图快捷键win shift s按了没反应 省流 关闭自动设置时间 在手动设置日期和时间改为2021年10月30日 再按Shift Ctrl S 此时可以截图成功 然后再开启自动设置时间 再按Shift Ctr
  • 深度学习(一)——MP神经元模型, BP算法, 神经元激活函数, Dropout

    https antkillerfarm github io 前言 神经网络本质上不是什么新东西 十年前 我还在上学的时候 就接触过皮毛 然而那时这玩意更多的还是学术界的屠龙之术 工业界几乎没有涉及 及至近日重新拾起 方才发现 这十年正是神经
  • 【Linux】ubuntu安装samba服务器

    Linux安装samba服务器 前言 正文 前言 在VMware虚拟机中安装samba服务器 可以用于windows与虚拟机文件夹共享 虽然VMware自带文件传输的工具 但是如果换一个环境换一个虚拟机工具就不一定具备该功能 所以samba
  • 常见的并发问题有哪些都不知道,还怎么说自己是大佬!!

    常见的并发问题有哪些 1 并发测试 1 1并发测试的定义 1 2并发测试的分类 2 常见并发问题 2 1事务并发的问题 2 2极限值并发的问题 2 3压力并发的问题 2 4异常数据干扰并发的问题 1 并发测试 最近小屌丝一直在埋头苦练性能的
  • 【云原生 · k8s】k8s-master初始化过程讲解

    文章目录 1 k8s master初始化过程讲解 2 k8s master运行的组件查看 控制平面 官网说法 查看 3 此时主节点就可以用 4 加入k8s node到集群中 5 k8s master主节点 查看所有工作节点的信息 6 如何让
  • Python爬虫抓取岗位信息~~叮~~毕业生看过来

    众所周知爬虫是用python编程语言实现的 主要用于网络数据的抓取和处理 例如爬取豆瓣电影TOP250 爬取小说等等 而爬取岗位对于刚毕业的大学生也是非常有必要的 下面我们来看看如何实现吧 用到的编程工具是python3 7 目录 一 抓取