Python爬取新型冠状病毒“谣言”新闻进行数据分析


Posted in Python onFebruary 16, 2020

一、爬取数据

话不多说了,直接上代码( copy即可用 )

import requests
import pandas as pd
class SpiderRumor(object):
 def __init__(self):
 self.url = "https://vp.fact.qq.com/loadmore?artnum=0&page=%s"
 self.header = {
  "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",
 }
 def spider_run(self):
 df_all = list()
 for url in [self.url % i for i in range(30)]:
  data_list = requests.get(url, headers=self.header).json()["content"]
  temp_data = [[df["title"], df["date"], df["result"], df["explain"], df["tag"]] for df in data_list]
  df_all.extend(temp_data)
  print(temp_data[0])
 pd.DataFrame(df_all, columns=["title", "date", "result", "explain", "tag"]).to_csv("冠状病毒谣言数据.csv", encoding="utf_8_sig")
if __name__ == '__main__':
 spider = SpiderRumor()
 spider.spider_run()

爬虫过程

Python爬取新型冠状病毒“谣言”新闻进行数据分析

二、数据分析

数据展示

Python爬取新型冠状病毒“谣言”新闻进行数据分析

每日谣言数量

Python爬取新型冠状病毒“谣言”新闻进行数据分析

由图可得:1月24日和1月25日是谣言的高峰期,让我们来看看这两天的数据:

Python爬取新型冠状病毒“谣言”新闻进行数据分析
Python爬取新型冠状病毒“谣言”新闻进行数据分析

由上图得知 一月二十四号和二十号传播的 29 条谣言中 96.55% 都是假的

谣言是否属实占比

Python爬取新型冠状病毒“谣言”新闻进行数据分析

从1月18日到今日截止2月14日共发现了300条谣言,右上图可得:76.33% 都是假的,只要 7.00% 是属实的,其中 14.33% 的谣言属于 伪科学 而且 还有 8.00% 属于尚无定论凭空捏造出的,需要多注意⚠️

谣言的关键字展示

Python爬取新型冠状病毒“谣言”新闻进行数据分析

下面介绍 matplotlib 绘制饼图的代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# Windows系统设置中文字体
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
data = pd.read_csv("/冠状病毒谣言数据.csv"")
labels = data["explain"].value_counts().index.tolist()
sizes = data["explain"].value_counts().values.tolist()
colors = ['lightgreen', 'gold', 'lightskyblue', 'lightcoral']
plt.figure(figsize=(15,8))
plt.pie(sizes, labels=labels,
 colors=colors, autopct='%1.1f%%', shadow=True, startangle=50) # shadow=True 表示阴影
plt.axis('equal') # 使图居中
plt.show()

绘制谣言关键字分布图(观察 tag 这个字段)

Python爬取新型冠状病毒“谣言”新闻进行数据分析

由于 tag 这个字段内容是列表,我们取出来后是列表嵌套列表:[[a, b], [b, c], [c, d]] 我们要使用一行列表生成式快速的将所以的关键字取出来 [j for i in a for j in i]

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# Windows系统设置中文字体
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

data = pd.read_csv("/冠状病毒谣言数据.csv"")
df = pd.Series([j for i in [eval(i) for i in data["tag"].tolist()] for j in i]).value_counts()[:20]
X = df.index.tolist()
y = df.values.tolist()
plt.figure(figsize=(15, 8)) # 设置画布
plt.bar(X, y, color="orange")
plt.tight_layout()
# plt.grid(axis="y")
plt.grid(ls='-.')
plt.show()

总结

以上所述是小编给大家介绍的Python爬取新型冠状病毒“谣言”新闻进行数据分析,希望对大家有所帮助!

Python 相关文章推荐
python 多线程应用介绍
Dec 19 Python
python实用代码片段收集贴
Jun 03 Python
Python基于checksum计算文件是否相同的方法
Jul 09 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 Python
Python面向对象编程基础解析(二)
Oct 26 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 Python
Python中的单下划线和双下划线使用场景详解
Sep 09 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
Python中私有属性的定义方式
Mar 05 Python
基于django micro搭建网站实现加水印功能
May 22 Python
Python Selenium实现无可视化界面过程解析
Aug 25 Python
python Pexpect模块的使用
Dec 25 Python
基于python实现微信好友数据分析(简单)
Feb 16 #Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 #Python
python中的 zip函数详解及用法举例
Feb 16 #Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 #Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 #Python
使用Tensorboard工具查看Loss损失率
Feb 15 #Python
Keras使用tensorboard显示训练过程的实例
Feb 15 #Python
You might like
简单PHP会话(session)说明介绍
2016/08/21 PHP
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python模拟百度登录实例详解
2016/01/20 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
python实现简单加密解密机制
2019/03/19 Python
python tkinter控件布局项目实例
2019/11/04 Python
pytorch标签转onehot形式实例
2020/01/02 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
python实现ip地址的包含关系判断
2020/02/07 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
工程部经理岗位职责
2013/12/08 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
人事主管岗位职责
2014/01/30 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
2014村务公开实施方案
2014/02/25 职场文书
教师节演讲稿
2014/05/06 职场文书
员工团队活动方案
2014/08/28 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
大学副班长竞选稿
2015/11/21 职场文书
法制教育讲座心得体会
2016/01/14 职场文书
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js