-
大小: 338KB文件类型: .rar金币: 2下载: 1 次发布日期: 2021-07-18
- 语言: Python
- 标签: python net-spider
资源简介
自己写的一个爬虫的小demo,可以成功爬取数据存储到本地,使用的话,改一下路径就可以了,爬取数据后,数据清洗,然后进行了简单的数据分析

代码片段和文件信息
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from scipy.misc import imread
import jieba
from pylab import mpl
# 使matplotlib模块能显示中文
mpl.rcParams[‘font.sans-serif‘] = [‘SimHei‘] # 指定默认字体
mpl.rcParams[‘axes.unicode_minus‘] = False # 解决保存图像是负号‘-‘显示为方块的问题
# 读取数据
df = pd.read_csv(open(‘D:\python项目\lagou_jobs.csv‘ encoding = ‘gbk‘))
# 数据清洗剔除实习岗位
df.drop(df[df[‘职位名称‘].str.contains(‘实习‘)].index inplace=True)
# print(df.describe())
# 由于CSV文件内的数据是字符串形式先用正则表达式将字符串转化为列表再取区间的均值
#在字符串中找到正则表达式所匹配的所有子串,并返回一个列表
pattern = ‘\d+‘
df[‘工作年限‘] = df[‘工作经验‘].str.findall(pattern)
avg_work_year = []
for i in df[‘工作年限‘]:
# 如果工作经验为‘不限‘或‘应届毕业生‘那么匹配值为空工作年限为0
if len(i) == 0:
avg_work_year.append(0)
# 如果匹配值为一个数值那么返回该数值
elif len(i) == 1:
avg_work_year.append(int(‘‘.join(i)))
# 如果匹配值为一个区间那么取平均值
else:
num_list = [int(j) for j in i]
avg_year = sum(num_list)/2
avg_work_year.append(avg_year)
df[‘经验‘] = avg_work_year
# 将字符串转化为列表再取区间的前25%,比较贴近现实
df[‘salary‘] = df[‘工资‘].str.findall(pattern)
avg_salary = []
for k in df[‘salary‘]:
int_list = [int(n) for n in k]
avg_wage = int_list[0]+(int_list[1]-int_list[0])/4
avg_salary.append(avg_wage)
df[‘月工资‘] = avg_salary
# 将清洗后的数据保存以便检查
df.to_csv(‘D:\python项目\draft.csv‘ index = False)
# 描述统计 对数据分析师工资进行简单的统计,并打印出来
print(‘数据分析师工资描述:\n{}‘.format(df[‘月工资‘].describe()))
# 绘制频率直方图并保存
plt.hist(df[‘月工资‘]bins = 12)
plt.xlabel(‘工资 (千元)‘)
plt.ylabel(‘频数‘)
plt.title(“工资直方图“)
plt.savefig(‘histogram.jpg‘)
plt.show()
# 绘制饼图并保存
#计算区域中地区出现的频数的数组
count = df[‘区域‘].value_counts()
print(count)
#(每一块)的比例,如果sum(x) > 1会使用sum(x)归一化
plt.pie(count labels = count.keys()labeldistance=1.4autopct=‘%2.1f%%‘)
plt.axis(‘equal‘) # 使饼图为正圆形
plt.legend(loc=‘upper left‘ bbox_to_anchor=(-0.1 1))#设置图例的位置
plt.savefig(‘pie_chart.jpg‘)
plt.show()
# 绘制词云将职位福利中的字符串汇总
text = ‘‘
for line in df[‘职位福利‘]:
text += line
# 使用jieba模块将字符串分割为单词列表
cut_text = ‘ ‘.join(jieba.cut(text))
print(cut_text)
color_mask = imread(‘wordcloud.jpg‘) #设置词云背景图
font=r‘C:\Windows\Fonts\simhei.ttf‘
cloud = WordCloud(
font_path = font
background_color = ‘white‘
mask = color_mask
max_words = 1000
max_font_size = 100
)
word_cloud = cloud.generate(cut_text)
# 保存词云图片
word_cloud.to_file(‘word_cloud.jpg‘)
plt.imshow(word_cloud)
plt.axis(‘off‘)
plt.show()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 455 2018-12-06 20:01 lagou-spider\.idea\lagou-spider.iml
文件 288 2018-12-06 20:00 lagou-spider\.idea\misc.xm
文件 276 2018-12-06 20:00 lagou-spider\.idea\modules.xm
文件 18791 2018-12-26 19:39 lagou-spider\.idea\workspace.xm
文件 96189 2018-12-21 11:01 lagou-spider\11.jpg
文件 10592 2018-12-21 11:14 lagou-spider\22.JPG
文件 24061 2018-12-26 16:36 lagou-spider\histogram.jpg
文件 3284 2018-12-26 16:36 lagou-spider\lagou_ana.py
文件 3207 2018-12-10 18:24 lagou-spider\lagou_spider.py
文件 36106 2018-12-26 16:36 lagou-spider\pie_chart.jpg
文件 63092 2018-12-09 18:23 lagou-spider\wordcloud.jpg
文件 146755 2018-12-26 16:36 lagou-spider\word_cloud.jpg
目录 0 2018-12-06 20:01 lagou-spider\.idea\inspectionProfiles
目录 0 2018-12-26 19:39 lagou-spider\.idea
目录 0 2018-12-26 16:36 lagou-spider
----------- --------- ---------- ----- ----
403096 15
相关资源
- 二级考试python试题12套(包括选择题和
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
- 基于PyQt5的视频播放器设计
- 一个简单的python爬虫
- csv文件行列转换python实现代码
- Python操作Mysql教程手册
- Python Machine Learning Case Studies
- python获取硬件信息
评论
共有 条评论