• 大小: 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.xml

     文件        276  2018-12-06 20:00  lagou-spider\.idea\modules.xml

     文件      18791  2018-12-26 19:39  lagou-spider\.idea\workspace.xml

     文件      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


评论

共有 条评论