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 11 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
Python tornado队列示例-一个并发web爬虫代码分享
Jan 09 Python
深入解析Python小白学习【操作列表】
Mar 23 Python
python进阶之自定义可迭代的类
Aug 20 Python
Django项目后台不挂断运行的方法
Aug 31 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
自定义Django默认的sitemap站点地图样式
Mar 04 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
python 实现音频叠加的示例
Oct 29 Python
Python eval函数原理及用法解析
Nov 14 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+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
Jquery attr("checked") 返回checked或undefined 获取选中失效
2013/10/10 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
js实现动态添加上传文件页面
2018/10/22 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
Python运行的17个时新手常见错误小结
2012/08/07 Python
深入理解python try异常处理机制
2016/06/01 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
大学秋游活动方案
2014/02/11 职场文书
网吧消防安全责任书
2014/07/29 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
微信搭讪开场白
2015/05/28 职场文书
上学路上观后感
2015/06/16 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书