编辑推荐: |
本文主要从一个招聘网站上来分析下深度学习目前就业情况,采集的是深度学习岗位的数据,然后用Python进行可视化,希望对您的学习有所帮助。
本文来自于CSDN,由火龙果软件Alice编辑,推荐。 |
|
python做数据分析非常强大和方便。我们可以随心所欲的从互联网上爬取数据并进行分析。微博评论,知乎粉丝,起点小说,甚至QQ音乐,淘宝,百度...只要你想要的数据,都有办法从网上快速获取。今天我们就从一个招聘网站上来分析下深度学习目前就业情况,网站是拉勾网,先采集拉勾网上面的数据,采集的是深度学习岗位的数据,然后用Python进行可视化。主要涉及的是爬虫&数据可视化的知识。
爬虫部分
先用Python来抓取拉勾网上面的数据,采用的是简单好用的requests模块。主要注意的地方是,拉勾网属于动态网页,所以会用到浏览器的F12开发者工具进行抓包。抓包以后会发现,其实网页是一个POST的形式,所以要提交数据,提交的数据如下图:
在上图也可以轻松发现:kd是查询关键词,pn是页数,可以实现翻页。
代码实现:
# 导入模块
import requests # 请求模块
import re
import pandas as pd
import time
import random
url = 'https://www.lagou.com/jobs/positionAjax.json?city= %E6%B7%B1%E5%9C%B3&needAddtionalResult=false&isSchoolJob=0'
# 反爬措施
header = {
'Accept':'application/json, text/javascript, */*;
q=0.01',
'Accept-Encoding':'gzip, deflate, br',
'Accept-Language':'zh-CN,zh;q=0.9',
'Connection':'keep-alive',
'Content-Length':'56',
'Content-Type':'application/x-www-form-urlencoded;
charset=UTF-8',
'Cookie':
Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1521549765',
'Host':'www.lagou.com',
'Origin':'https://www.lagou.com',
'Referer':'https://www.lagou.com/jobs/list_%E6%B7%B1%E5% BA%A6%E5%AD%A6% E4%B9%A0?labelWords=&fromSearch=true&suginput=',
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac
OS X 10_13_2) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/64.0.3282.186 Safari/537.36',
'X-Anit-Forge-Code':'0',
'X-Anit-Forge-Token':'None',
'X-Requested-With':'XMLHttpRequest'
}
for n in range(30):
# 注意:抓取数据的时候不要爬取太快,除非你有其他的反爬措施,
# 比如更换IP等,另外不需登录,我在代码加入了time模块, 用于限制爬取速度。
time.sleep(random.randint(2,5))
# 字典json
form = {
'first':'false',
'pn':str(n),
'kd':'深度学习'————————————————
|
数据可视化
下载下来的数据长成这个样子:
导入模块并配置绘图风格
import pandas
as pd # 数据框操作
import numpy as np
import matplotlib.pyplot as plt # 绘图
import jieba # 分词
from wordcloud import WordCloud # 词云可视化
import matplotlib as mpl # 配置字体
from pyecharts import Geo # 地理图
mpl.rcParams["font.sans-serif"] = ["Microsoft
YaHei"]
# 配置绘图风格
plt.rcParams["axes.labelsize"] = 16.
plt.rcParams["xtick.labelsize"] = 14.
plt.rcParams["ytick.labelsize"] = 14.
plt.rcParams["legend.fontsize"] = 12.
plt.rcParams["figure.figsize"] = [15.,
15.]
|
数据预览
# 导入数据
data = pd.read_csv(r'/Users/gavin/PycharmProjects/jupyter _test/lagou_data.csv',encoding='utf-8')
# 导入数据
data.head() |
注意:以上列名是我加上去的
学历要求
data['学历要求'].value_counts().plot(kind='barh',rot=0)
plt.show |
工作经验
Python热门岗位
这里我重新生成了新的数据,搜索python相关的。
final = ''
stopwords = ['python','Python','工程师','(',')','/']
# 停止词
for n in range(data.shape[0]):
seg_list = list(jieba.cut(data['岗位名称'][n]))
for seg in seg_list:
if seg not in stopwords:
final = final + seg +''
my_wordcloud = WordCloud(font_path=r'/Library/Fonts/SimHei.ttf', width=1000,height=600).generate(final)
plt.imshow(my_wordcloud)
plt.axis('off')
plt.show()
|
|