您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
   
 
     
   
 订阅
  捐助
python数据采集及可视化
 
作者: 山水之间2018
566 次浏览 评价:  
 2020-6-10
 
编辑推荐:
本文主要从一个招聘网站上来分析下深度学习目前就业情况,采集的是深度学习岗位的数据,然后用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()

 
   
566 次浏览     评价: 订阅 捐助
相关文章

手机软件测试用例设计实践
手机客户端UI测试分析
iPhone消息推送机制实现与探讨
Android手机开发(一)
相关文档

Android_UI官方设计教程
手机开发平台介绍
android拍照及上传功能
Android讲义智能手机开发
相关课程

Android高级移动应用程序
Android系统开发
Android应用开发
手机软件测试
最新课程计划
 
最新文章
简述Matplotlib
Python三维绘图--Matplotlib
Python数据清洗实践
PyTorch实战指南
Python爬虫与数据可视化
最新课程
Python应用开发最佳实践
Python+数据分析+tensorflow
Python 编程方法和应用开发
人工智能+Python+大数据
Python及数据分析
更多...   
成功案例
某通信设备企业 Python数据分析与挖掘
某银行 人工智能+Python+大数据
某领先数字地图提供商 Python数据分析与机器学习
北京 Python及数据分析
某金融公司 Python编程方法与实践培训
更多...