抓取GDELT数据并按日期存放在本地

该博客展示了如何使用Python从GDELT项目中下载翻译后的CSV数据,并将其按日期存储到本地。通过定义`download`、`un_zip`和`cut_csv_file`等函数,实现了文件的下载、解压缩以及数据切割。`run`和`multi`函数则提供了单线程和多线程的爬取策略,确保数据更新的实时性。
摘要由CSDN通过智能技术生成

# -*- coding: utf-8 -*-

import os
import requests
import shutil
import zipfile
import time, datetime
import traceback
import langid
import scrapy
import pandas
from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor, as_completed
from multiprocessing import Pool, cpu_count

from urllib.request import urlopen
from requests.adapters import HTTPAdapter


DATA_PATH='.'

CRAWL_START_TIME= '2021010100' 


def un_zip(filename_full, savepath):
    if not os.path.isdir(savepath):
        os.mkdir(savepath)
    zip_file = zipfile.ZipFile(filename_full)
    for names in zip_file.namelist():
        zip_file.extract(names, savepath)
    zip_file.close()
    os.remove(filename_full)

def get_gdeltData_path(filename, savepath):
    month = filename.split('.')[0][0:6]
    day = filename.split('.')[0][4:8]
    #hour = filename.split('.')[0][8:10]
    path = os.path.join(savepath, month, day)
    if not os.path.isdir(path):
        os.makedirs(path)
    return path+'\\'

def download_lastupdate(savepath, filetype):
    url = 'http://data.gdeltproject.org/gdeltv2/lastupdate-translation.txt'
    html = urlopen(url).read()
    filename = None
    for line in str(html.decode('utf-8'))

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值