Python下载和处理GDELT 2.0 事件数据

本文介绍了如何使用Python下载和处理GDELT 2.0全球事件数据,包括筛选特定国家的信息。通过循环遍历不同时间点的文件,利用requests和zipfile库进行HTTP请求和文件解压。文章提供了简化脚本示例,展示如何下载2024年2月的数据,并在Excel中过滤和查看所需信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GDELT每时每刻监控着每个国家的几乎每个角落的100多种语言的新闻媒体—印刷的、广播的和web形式的,识别人员、位置、组织、数量、主题、数据源、情绪、报价、图片和每秒都在推动全球社会的事件,GDELT为全球提供了一个自由开放的计算平台。

GDELT2.0每个15分钟提供全球事件数据。GDELT目前的事件库约有3.5亿条事件数据。这些事件从1979年1月1日开始一直到今日。GDELT第一项服务就是免费的数据下载。同时GDELT还在谷歌的BigQuery上提供了数据API,这样您可以使用谷歌的分析工具进行分析。GDELT的数据除了事件数据外,还提供了GKG数据,也就是全球知识图(Global Knowledge Graph)的数据。在国内您也可以到疙瘩汤(www.gdelt.cn)上下载数据。

时间数据的数据量比较大,本次只下载24年2月份export结尾的数据,并从数据中过滤中国和美国相关的数据,使用H Actor1CountryCode:参与者1国家信息的CAMEO码(3字母缩写)和  R 18 Actor2CountryCode列来过滤。文章最后会附上完整的下载和处理代码。

由于数据文件的名称比较有规律,采用0-24时,循环遍历每个小时的0、15、30和45分钟的数据文件:

if __name__ == "__main__":
    start_date = datetime(2024, 2, 1)
    end_date = datetime(2024, 2, 2)
    dest_folder = "E:\\gdelt_event"
    base_url = "http://data.gdeltproject.org/gdeltv2/"
    delete_renamed = "Y"  # 是否删除重命名后的原始CSV文件
    delete_excel = "Y"  # 是否删除筛选后的Excel文件
    for single_date in generate_dates(start_date, end_date):
        date_str = single_date.strftime("%Y%m%d")
        for hour in range(0, 24):
            for minute in ['00','15','30','45']:
                filename = f"{date_str}{hour:02d}{minute}00.export.CSV.zip"
                url = base_url + filename
                download_filter_and_save(url, dest_folder, delete_renamed, delete_excel)

使用requests库来处理HTTP请求,并用zipfile库来解压下载的文件。请确保在运行此脚本之前已经安装了requests库,如果没有安装,可以通过运行pip install requests来安装。

import requests
import zipfile
import os
def download_and_extract(url, extract_to):
    # 使用requests下载文件
    response = requests.get(url)
    if response.status_code == 200:
        # 确保目标文件夹存在
        os.makedirs(extract_to, exist_ok=True)
        zip_path = os.path.join(extract_to, 'temp.zip')
        
        # 写入下载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值