查看前程无忧Python岗及一些可视化

用Python查看一下前程无忧的Python岗,并尝试做一些可视化以直观化。

"""
    Python爬取前程无忧,获取最新招聘薪资福利
"""
import json
import pprint
import random

import requests
import re
import csv
import time

# 打开文件
f = open('20211102前程无忧python岗位.csv', mode='a', encoding='utf-8-sig', newline='') # utf-u-sig打开的时候才不会乱码
# 写入器
csvWriter = csv.DictWriter(f, fieldnames=[
    '标题',
    '公司名称',
    '城市',
    '薪资',
    '招聘信息',
    '公司属性',
    '公司规模',
    '企业性质',
    '招聘发布日期',
    '公司详情页',
    '招聘详情页',
])
# 将上面的内容写入到表头
csvWriter.writeheader()

# 请求头
headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36',
}

# 多页读取
for page in range(1, 11):
    time.sleep(random.randint(2, 10))
    url = f'https://search.51job.com/list/010000%252c020000%252c030200%252c040000%252c090200,000000,0000,00,9,99,python,2,{page}.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare='
    # 开始请求网页
    responses = requests.get(url=url, headers=headers)
    # print(responses.text)
    # 解析网页数据
    htmlData = re.findall('window.__SEARCH_RESULT__ = (.*?)</script>', responses.text, re.S) #re.S表示忽略空白
    # print(htmlData)
    # print(type(htmlData)) # list
    # 将上面的htmlData转换成json数据方便读取
    json_data = json.loads(htmlData[0]) # 因为是列表,我们取第一项
    # print(json_data)
    # pprint.pprint(json_data) # 格式化输出一下
    # 开始逐项读取
    for i in json_data['engine_jds']:
        # pprint.pprint(i)
        workAreaText = i['workarea_text']
        workCity = workAreaText[0:2] # 城市,用来做数据可视化
        issueyear = i['issuedate'][0:4] # 年份,用来做数据可视化
        issueMonth = i['issuedate'][5:7] # 月份,用来做数据可视化
        issueHour = i['issuedate'][11:13] # 小时,用来做数据可视化
        dit = {
            '标题':i['job_name'],
            '公司名称':i['company_name'],
            '城市':i['workarea_text'],
            '薪资':i['providesalary_text'],
            '招聘信息':'|'.join(i['attribute_text']),
            '公司属性':i['companytype_text'],
            '公司规模':i['companysize_text'],
            '企业性质':i['companytype_text'],
            '招聘发布日期':i['issuedate'],
            '公司详情页':i['company_href'],
            '招聘详情页':i['job_href'],
        }

        # 写入到csv文档
        csvWriter.writerow(dit)

# 数据可视化方向

数据存储完后是以下这样的:

 可视化方向:

  1,城市统计;

  2,薪资定位;

  3,公司规模;

  4,公司性质;

  5,城市分布热力图

posted @ 2021-11-02 11:11  、一叶孤城  阅读(154)  评论(0编辑  收藏  举报