Python分析51job岗位、多元回归建模预测薪资

项目背景

最近在寻找数据分析师的工作,需要了解数据分析师相关岗位的现状,通过招聘网站信息来了解企业的用人要求是最直接也是最简单的途径,这里以Python岗位为例做一个简单的分析报告。

明确分析目的

分析Python岗位近期的招聘情况,包括区域分析、薪资分布、经验要求分布等,了解最新该岗位的招聘情况;利用多元回归建模预测薪资情况。

分析工具

使用Python的Lxml库写爬虫到51job网站爬取数据,分析和可视化均使用Python,主要用到request、lxml、pandas、matplotlib等包。

数据来源
数据来源于51job网站,数据包含字段:'职位’title,'公司名’name,'城市’city,'工资’wage,'发布日期’date,'经验要求’exp,'学历’xueli

数据爬取代码

from urllib import request
from lxml import etree
import pandas as pd 
import matplotlib.pyplot as plt 
import seaborn as sns
import csv
import gevent
from gevent import monkey
monkey.patch_all() 
plt.rcParams['font.sans-serif']=['SimHei']
  
##获取网页
def get_html(url,code):
    response = request.urlopen(url)
    html = response.read().decode(code)

    html = etree.HTML(html)
    html = etree.ElementTree(html)
    return html

##获取关键字段的信息列表    
def get_list(html):
    datas = html.xpath('//div[@id="resultList"]/div[@class="el"]')
    list = []
    for i,data in enumerate(datas):
        data = etree.ElementTree(data)
        title = data.xpath('/div/p/span/a/@title')[0]
        name = data.xpath('/div/span/a/text()')[0]
        city = data.xpath('/div/span[2]/text()')[0]
        city = city if city else None
        wage = data.xpath('/div/span[3]/text()')
        wage = wage[0] if wage else None
        date = data.xpath('/div/span[4]/text()')[0]
        link = data.xpath('/div/p/span/a/@href')[0]
        html2 = get_html(link,'gbk')
        text = html2.xpath('//p[@class="msg ltype"]/text()')
        exp = text[1].strip() if text else None
        xueli = text[2].strip() if text else None
        head = [title,name,city,wage,date,exp,xueli]
        list.append(head)
    return list
##把列表信息写入并保存为CSV文件
def write_row(filename,writetype,list):
    with open(filename,writetype,newline='') as filename:
        writer = csv.writer(filename)
        writer.writerows(list)  
##写入字段标题名
def write_header(filename,writetype):
    with open(filename,writetype,newline='') as filename:
        writer = csv.writer(filename)
        writer.writerow(('职位','公司','城市','工资','发布日期','经验要求','学历'))    

#利用gevent并发和for循环完成1~10页的信息爬取
def grab_one_pa
  • 19
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值