Python、Java 薪资最高,C# 垫底:分析什么编程语言最赚钱!

2023-10-14 02:59

本文主要是介绍Python、Java 薪资最高,C# 垫底:分析什么编程语言最赚钱!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
本文主要用Python爬取拉勾网不同编程语言职位信息,包括Python岗、Java岗、C++岗、PHP岗、C#岗位(5岗),再用R语言对影响薪资的因素进行分析。由于拉勾网的职位信息只显示30页,一页15个职位信息,如果单独爬取一个城市的岗位信息,只有几页是匹配的信息,信息量太小,分析没有说服力。因此,本文爬取拉勾网全国职位信息。主要包括三部分内容:

爬取拉勾网5岗职位信息,以Python岗为例;
以Python岗位信息为例,分析影响薪资的因素;
5岗之间薪水因素影响比较分析。

爬取拉勾网5岗职位信息——以Python岗为例

我们抓取的信息包括Python岗位名称、公司名称、薪资、工作经验、学历、公司规模、公司福利。
在这里插入图片描述

##以python岗位为例,运用selenium+Chrome()爬取岗位信息

coding=UTF-8 from lxml import etree from selenium import webdriver import time import csv browser = webdriver.Chrome()

browser.get(‘https://www.lagou.com/jobs/list_PYTHON?px=default&city=全国#filterBox’)
browser.implicitly_wait(10) def get_dates(selector): items =
selector.xpath(’//[@id=“s_position_list”]/ul/li’) for item in items:
yield { ‘Name’: item.xpath(‘div[1]/div[1]/div[1]/a/h3/text()’)[0],
‘Company’: item.xpath(‘div[1]/div[2]/div[1]/a/text()’)[0], ‘Salary’:
item.xpath(‘div[1]/div[1]/div[2]/div/span/text()’)[0], ‘Education’:
item.xpath(‘div[1]/div[1]/div[2]/div//text()’)[3].strip(), ‘Size’:
item.xpath(‘div[1]/div[2]/div[2]/text()’)[0].strip(), ‘Welfare’:
item.xpath(‘div[2]/div[2]/text()’)[0] } def main(): i = 0 for i in
range(30): selector = etree.HTML(browser.page_source)
browser.find_element_by_xpath(’//
[@id=“order”]/li/div[4]/div[2]’).click()
time.sleep(5) print(‘第{}页抓取完毕’.format(i+1)) for item in
get_dates(selector): print(item) with open(‘Py.csv’, ‘a’,
newline=’’) as csvfile: ##Py.csv是文件的保存路径,这里默认保存在工作目录 fieldnames =
[‘Name’, ‘Company’, ‘Salary’, ‘Education’, ‘Size’, ‘Welfare’] writer
= csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() for item in get_dates(selector): writer.writerow(item) time.sleep(5)
browser.close() if name==‘main’: main()

抓取结果如下:

将抓取结果循环写入csv文件:

在这里插入图片描述

此外还抓取了Java岗、C++岗、PHP岗、C#岗位4岗的信息,代码和抓取Python岗位信息类似。

以Python岗位信息为例,分析影响薪资的因素

这里包括数据清洗部分和数据分析部分两部分内容。

数据清洗部分

data<-read.csv(“E://Data For R/RData/Py.csv”)
data[sample(1:nrow(data),size=10),]

在这里插入图片描述

在抓取过程中,由于将Python字典循环写入csv文件,因此列名也被循环写在csv文件中。
在这里插入图片描述

考虑本文主要分析影响薪资的因素,这里去除Name和Company两列。

##去除Name和Company两列 DATA<-data[,-c(1,2)]
##将python字典循环写入csv文件时,标题也会被写入,去除多余的标题
##查找哪些行是标题重复的行 which(DATAKaTeX parse error: Expected 'EOF', got '#' at position 171: …4] 534 550 566 #̲#去除多余的标题所在的行 DA…Salary %in% “Salary”)),] dim(DATA) [1] 545 4

1.变量Salary

变量Salary一般都是范围值,用“-”连接,但是不排除有XXK以上,例如10k以上这种表示形式,或者其他形式,这里需要处理一下。

##如果薪资是一个范围值,都是"-"连接,注意,薪资是一个范围值,匹配末尾结束k值需要注意,有大写K和小写k两种形式。 newdata<-DATA[grep(’\-’,DATAKaTeX parse error: Expected 'EOF', got '#' at position 34: …ata) [1] 544 4 #̲#对比前面dim(DATA),…lowsalary<-str_replace(newdataKaTeX parse error: Expected 'EOF', got '#' at position 20: …alary,'k|K',"")#̲# |表示或的关系 newda…highsalary<-str_replace(newdata h i g h s a l a r y , ′ k ∣ K ′ , &quot; &quot;

这篇关于Python、Java 薪资最高,C# 垫底:分析什么编程语言最赚钱!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/207678

相关文章

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很