其他
2000万条直播数据,揭秘斗鱼主播生存现状
以下文章来源于凹凸玩数据 ,作者朱小五
获取数据
data = []
doc = get_json(url)
jobs=doc['data']['rl']
for job in jobs:
dic = {}
dic['user_name']=jsonpath.jsonpath(job,'$..nn')[0] #用户名
dic['user_id']= jsonpath.jsonpath(job,'$..uid')[0] #用户ID
dic['room_name']=jsonpath.jsonpath(job,'$..rn')[0] #房间名
dic['room_id']=jsonpath.jsonpath(job,'$..rid')[0] #房间ID
dic['redu']=jsonpath.jsonpath(job,'$..ol')[0] #热度
dic['c2name']=jsonpath.jsonpath(job,'$..c2name')[0] #分区
dic['time']= stampToTime(time.time())
data.append(dic)
return data
from sqlalchemy import create_engine
engine = create_engine('mysql+mysqldb://root:***密码***@localhost:3306/demo?charset=utf8mb4')
final_result.to_sql('data_douyu',con=engine, index=False, index_label=False,if_exists='append', chunksize=1000)
数据分析
将数据导入python。data = data[['c2name', 'redu', 'room_id', 'room_name', 'time','user_id', 'user_name']].drop_duplicates()
#筛选时间
data = data.loc[(data['time'] <= '2019-08-07') & (data['time'] >= '2019-08-01')]
data_abc['hour'] = data_abc['time_num']/ 42 #每十分钟一次,七天
data_abc.head()
数据可视化
import matplotlib as mpl #配置字体
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
mpl.rcParams['axes.unicode_minus']
plt.figure(figsize=(8,8))
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
sns.scatterplot(data_test["hour"],data_test["av_redu"],hue=data_test["c2name"])
plt.figure(figsize=(10,6))
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
sns.distplot(data_abc.loc[(data_abc['av_redu'] > 10000)]["hour"],kde=True,rug=False,color='y')
plt.show()
#下载链接相关爬虫代码# https://t.zsxq.com/iQRjeeY
福利扫描添加小编微信,备注“姓名+公司职位”,入驻【CSDN博客】,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
推荐阅读:
10分钟Get拥抱无服务的正确姿势 创纪录!浪潮云海完成OpenStack Rocky版本全球最大规模单一集群测试! @程序员,第一份工作薪资不重要? Python老司机给上路新手的3点忠告 限时早鸟票 | 2019 中国大数据技术大会(BDTC)超豪华盛宴抢先看! 小米推出售价 19999 元的 MIX Alpha;高通已向华为重启供货;.NET Core 3.0 发布 | 极客头条 比特币又跌了, 还是赶紧学学比特币区块大小限制的原理, 原来并非越来越好!