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的Django框架加载模版的方式
Jul 20 Python
python的mysqldb安装步骤详解
Aug 14 Python
Numpy掩码式数组详解
Apr 17 Python
python进行两个表格对比的方法
Jun 27 Python
python爬取哈尔滨天气信息
Jul 14 Python
pycharm 配置远程解释器的方法
Oct 28 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
Mar 10 Python
Python如何实现FTP功能
May 28 Python
Python urllib2运行过程原理解析
Jun 04 Python
2020版Python学习路线图(附学习资料)
Sep 15 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
python 动态渲染 mysql 配置文件的示例
Nov 20 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
关于Intype一些小问题的解决办法
2008/03/28 PHP
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
php数组键值用法实例分析
2015/02/27 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
一个选择最快的服务器转向代码
2009/04/27 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
js类型检查实现代码
2010/10/29 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
js多个物体运动功能实例分析
2016/12/20 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
JavaScript文本特效实例小结【3个示例】
2018/12/22 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
python画图常规设置方式
2020/03/05 Python
怎么快速自学python
2020/06/22 Python
日本PLST在线商店:日本时尚杂志刊载的人气服装
2016/12/10 全球购物
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
夜大毕业生自我评价分享
2013/11/10 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
初中教师个人工作总结
2015/02/10 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
java基础——多线程
2021/07/03 Java/Android