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 示例分享---逻辑推理编程解决八皇后
Jul 20 Python
详解使用Python处理文件目录的相关方法
Oct 16 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
python3之模块psutil系统性能信息使用
May 30 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
对Python中内置异常层次结构详解
Oct 18 Python
Python企业编码生成系统之主程序模块设计详解
Jul 26 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
Aug 09 Python
python读取raw binary图片并提取统计信息的实例
Jan 09 Python
深入了解NumPy 高级索引
Jul 24 Python
Python OpenCV 图像平移的实现示例
Jun 04 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
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
php购物车实现代码
2011/10/10 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
IE与firefox之jquery用法区别
2008/10/03 Javascript
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
原生js实现验证码功能
2017/03/16 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
HTML5 canvas基本绘图之填充样式实现
2016/06/27 HTML / CSS
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
财务会计专业毕业生自荐信
2013/10/19 职场文书
劳动之星获奖感言
2014/02/01 职场文书
新年联欢会主持词
2014/03/27 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
Minikube搭建Kubernetes集群
2022/03/31 Servers