在传染病研究领域,社交媒体数据已被证明可作为预测感冒和流感季节的发作和进展的指标。在本文中,我们将使用Google Trends API来衡量与冠状病毒的状态。我们将使用python谷歌趋势API pytrends在州一级分析google搜索“冠状病毒”。

安装依赖

要安装pytrends,请打开命令行并输入:

pip install pytrends

对于我们这里,如果需要代理的话需要在安装requests的依赖

pip install requests[socks]

编写代码

然后打开你喜欢的编辑器(我用PyCharm社区版)

from pytrends.request import TrendReq

接下来,我们指定主机语言,时区和有效负载。 我们将主机语言指定为英语(“ en-US”),时区指定为“中央标准时区”,即“ 360”,并且可以将google属性过滤器(gprop)保留为空字符串。 我们还设置了category = 0,它对应于与关键字相关的所有类别。让我们获取2020年2月至2020年3月在纽约的“冠状病毒”数据:

pytrends = TrendReq(hl='en-US', tz=360)
pytrends.build_payload(['Coronavirus'], cat=0, timeframe='2020-02-01 2020-03-10', gprop='', geo='US-NY')

然后,我们定义一个dataframe为生成的pytrends对象,并打印前五行:

df = pytrends.interest_over_time()
print(df.head())


我们还可以使用seaborn和matplotlib绘制“冠状病毒”搜索的时间序列:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pdsns.set()
df['timestamp'] = pd.to_datetime(df.index)
sns.lineplot(df['timestamp'], df['Coronavirus'])plt.title("Normalized Searches for Coronavirus in NY")
plt.ylabel("Number of Searches")
plt.xlabel("Date")


让我们对马萨诸塞州的“冠状病毒”做同样的事情:

封装成函数

我们可以定义一个函数,使我们可以为任何周提取此数据:

def get_searches(key_word, state):
pytrends = TrendReq(hl='en-US', tz=360)
pytrends.build_payload([key_word], cat=0, timeframe='2020-02-01 2020-03-10', gprop='',geo='US-{}'.format(state))
df = pytrends.interest_over_time() print(df.head()) sns.set()
df['timestamp'] = pd.to_datetime(df.index)
sns.lineplot(df['timestamp'], df[key_word]) plt.title("Normalized Searches for {} in {}".format(key_word, state))
plt.ylabel("Number of Searches")
plt.xlabel("Date")

下面我们看看 NY, MA, CA:

get_searches('Coronavirus', 'NY')
get_searches('Coronavirus', 'MA')
get_searches('Coronavirus', 'CA')


我们可以提取其他州数据或者整个美国的数据。 也可以使用其他关键字输入进行操作。 也许您想搜索“Coronavirus symptoms”(症状)或“Coronavirus mortality rate”(死亡率)。

总结

我们使用python库“ pytrends”提取了与关键字“冠状病毒”相对应的州级Google趋势数据。 社交媒体数据(例如Google趋势数据)可能对衡量与公众健康相关主题(例如冠状病毒)的社交参与度很有用。 这可以帮助疾病预防控制中心等卫生机构定量评估需求,分配资源并传达预防措施。 我希望您发现这篇文章有用/有趣。

从曲线我们就能看到,虽然川普嘴上说不重视,但是美国民众可不是这么想的,大家在很早以前就已经非常重视了,并且在3月11日达到了峰值,当时正好是NBA球星米切尔和汤姆汉克斯感染所以美国民众的关注度达到了高峰。

这里是送的

最后再验证下为什么老外都喜欢屯厕纸?
有报道说:老外把冠状病毒coronavirus和诺如病毒norovirus给混淆了,而诺如病毒引发的主要症状就是腹泻,也没有疫苗和特效药物,那我们看下来老外对这个词的关注程度吧:

看样子还真是这样的,这个关键词热度在11月以后飙升,基本增长的趋势和冠状病毒一样,所以由此来看,真的和拼错有一定的关系。

数据采集实战:通过Python获取和分析Google趋势中Covid-19的关注程度的更多相关文章

  1. (数据科学学习手札47)基于Python的网络数据采集实战(2)

    一.简介 马上大四了,最近在暑期实习,在数据挖掘的主业之外,也帮助同事做了很多网络数据采集的内容,接下来的数篇文章就将一一罗列出来,来续写几个月前开的这个网络数据采集实战的坑. 二.马蜂窝评论数据采集 ...

  2. selenium2自动化测试实战--基于Python语言

    自动化测试基础 一. 软件测试分类 1.1 根据项目流程阶段划分软件测试 1.1.1 单元测试 单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程. 1.1.2 集成测试 ...

  3. python获取系统内存占用信息的实例方法

    psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息.它主要应用于系统监控, ...

  4. kafka实战教程(python操作kafka),kafka配置文件详解

    kafka实战教程(python操作kafka),kafka配置文件详解 应用往Kafka写数据的原因有很多:用户行为分析.日志存储.异步通信等.多样化的使用场景带来了多样化的需求:消息是否能丢失?是 ...

  5. Python文章相关性分析---金庸武侠小说分析

    百度到<金庸小说全集 14部>全(TXT)作者:金庸 下载下来,然后读取内容with open('names.txt') as f: data = [line.strip() for li ...

  6. kubernetes之监控Prometheus实战--prometheus介绍--获取监控(一)

    Prometheus介绍 Prometheus是一个最初在SoundCloud上构建的开源监控系统 .它现在是一个独立的开源项目,为了强调这一点,并说明项目的治理结构,Prometheus 于2016 ...

  7. Python 获取车票信息

    提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...

  8. 用python探索和分析网络数据

    Edited by Markdown Refered from: John Ladd, Jessica Otis, Christopher N. Warren, and Scott Weingart, ...

  9. python爬虫之分析Ajax请求抓取抓取今日头条街拍美图(七)

    python爬虫之分析Ajax请求抓取抓取今日头条街拍美图 一.分析网站 1.进入浏览器,搜索今日头条,在搜索栏搜索街拍,然后选择图集这一栏. 2.按F12打开开发者工具,刷新网页,这时网页回弹到综合 ...

随机推荐

  1. centos 6.* 修改时间

    一.查看Centos的时区和时间 1.使用date命令查看Centos时区 [root@VM_centos ~]# date -R Mon, 26 Mar 2018 19:14:03 +0800 2. ...

  2. interrupt 停止线程

    该方法只是给线程设置了一个停止的标记 并不是真正的立即停止线程 interrupted() 测试当前线程是否已经中断 isInterrupted() 测试线程是否已经中断 停止线程的方法: .异常法 ...

  3. 自主知识产权受热捧 瑞星ESM SOHO版全力护卫小微企业

    小微企业现在可以说是我国国民经济中最重要的组成部分,在总产值.利税.解决就业等方面,都在为国家积极贡献着自己的力量.但在小微企业一片欣欣向荣的背后,却有着难言之隐--那就是困扰着广大小微企业多年的企业 ...

  4. vue项目根目录下index.html中的id="app",与src目录下的App.vue中的id="app"为什么不会冲突

    感谢:https://blog.csdn.net/qq_35624642/article/details/78243413 index.html <body> <div id=&qu ...

  5. tomcat启动后access error[730048]的解决方法

    安装了JDK... 配置了系统变量... 解压了tomcat... 配置了系统变量... 点击startup.bat启动了以后,打开浏览器,出现access error 404错误. 仔细看过控制台输 ...

  6. JAVA WEB期末项目第二阶段成果

    我们做的系统是一个基于Java web与MySQL的食堂订餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 1.开发环境 开发编辑器使用:Visual Studio Code 数据库使用:MySQL8 ...

  7. Memcached Client 使用手册

    Memcached Client 使用手册 Author: cenwenchu Email: wenchu.cenwc@alibaba-inc.com Blog:http://blog.csdn.ne ...

  8. JDBC连接到数据库查询打印数据

    通过一天的视频学习,认识了jdbc的连接原理前来小结: 游标读取数据库表的行一次读取一个,getXxx()方法读取表的列一个数据 next()方法可以让游标下移 可以把数据库的表看做是一个类,每条记录 ...

  9. vue watch和computed的使用场景

    watch 监听某个数据的变化(监听完调用什么函数) 一个数据影响多个数据 (比如:浏览器自适应.监控路由对象.监控自身属性变化) computed 计算后返回新 一个数据受多个数据影响(比如:计算总 ...

  10. 查漏补缺:Vector中去重

    对于STL去重,可以使用<algorithm>中提供的unique()函数. unique()函数用于去除相邻元素中的重复元素(所以去重前需要对vector进行排序),只留下一个.返回去重 ...