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自定义解析简单xml格式文件的方法
May 11 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
PyQt5每天必学之进度条效果
Apr 19 Python
python得到单词模式的示例
Oct 15 Python
python 读取鼠标点击坐标的实例
Dec 29 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
Python利用逻辑回归分类实现模板
Feb 15 Python
Python基于paramunittest模块实现excl参数化
Apr 26 Python
python不到50行代码完成了多张excel合并的实现示例
May 28 Python
python urllib和urllib3知识点总结
Feb 08 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
web方式ftp
2006/10/09 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
JQuery中$之选择器用法介绍
2011/04/05 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
Python使用requests发送POST请求实例代码
2018/01/25 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
简单了解Python生成器是什么
2019/07/02 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
家长会学生家长演讲稿
2013/12/29 职场文书
草船借箭教学反思
2014/02/03 职场文书
新书发布会策划方案
2014/06/09 职场文书
手把手教你导入Go语言第三方库
2021/08/04 Golang
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL