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中pandas.DataFrame排除特定行方法示例
Mar 12 Python
python扫描proxy并获取可用代理ip的实例
Aug 07 Python
vscode 远程调试python的方法
Dec 01 Python
python实现感知器算法详解
Dec 19 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
Python将多个list合并为1个list的方法
Jun 27 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
python 获取键盘输入,同时有超时的功能示例
Nov 13 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
使用python绘制二维图形示例
Nov 22 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
matplotlib相关系统目录获取方式小结
Feb 03 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 jsonp单引号转义
2014/11/23 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
PHP使用Redis实现Session共享的实现示例
2019/05/12 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
Javascript var变量隐式声明方法
2009/10/19 Javascript
下载网站打开页面后间隔多少时间才显示下载链接地址的代码
2010/04/25 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
详解Vue2.x-directive的学习笔记
2017/07/17 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
vue实现弹幕功能
2019/10/25 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
python使用7z解压apk包的方法
2015/04/18 Python
python实现爬取图书封面
2018/07/05 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
python 并发下载器实现方法示例
2019/11/22 Python
python collections模块的使用
2020/10/16 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
软件测试面试题
2015/10/21 面试题
学习型党组织建设经验材料
2014/05/26 职场文书
创先争优标语
2014/06/27 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书