谷歌GDELT数据下载代码
来源:互联网 发布:怪物猎人p3雷狼数据 编辑:程序博客网 时间:2024/05/16 03:19
在上一篇博客中,我对GDELT数据进行了说明,在这篇文档中直接上代码,有需要的可以直接使用并下载数据,有问题欢迎留言。
GDELT提供了好几种数据,包括gkg、event、mentions等数据,我在代码中下载的是event数据,可以自己修改原始链接,代码应该可以通用,原理是一样的。
需要注意,数据量较大,截止到2017.7.18全部下载下来需要150多GB,所以下载的时候最好下载到硬盘中,免得电脑内存不足。
#-*-coding:utf-8-*-import requestsfrom bs4 import BeautifulSoupimport datetime, timeimport zipfileimport sysimport multiprocessingimport randomimport ospath = sys.path[0] +'/'def get_url_list(url): '''获取页面下的所有url,保存到url_list.txt中,并返回url_list''' html = requests.get(url).text soup = BeautifulSoup(html, 'lxml') url_list = [] for li in soup.body.ul.find_all('li'): href = 'http://data.gdeltproject.org/events/' + li.a['href'] url_list.append(href) print len(url_list) new_url_list = url_list[3:-1] #前三个url和最后一个不是我们需要的数据,故跳过 f = open(path + 'url_list.txt', 'w') for url in new_url_list: f.write(url) f.write('\n') return new_url_listdef get_url_data(url): filename = path + url.split('/')[-1] try: data = requests.get(url) t = random.random() #因为文件较多,所以选择随机输出url,便于掌握运行情况 if t > 0.5: print url with open(filename, "wb") as code: code.write(data.content) fz = zipfile.ZipFile(filename, 'r') fz.extract(fz.namelist()[0], path) #解压下载下来的zip文件夹 if os.path.exists(filename): os.remove(filename) #删除zip文件夹,只保存解压后的数据 except Exception, e: print Exception, e log = open(path + 'log.txt', 'a') log.write(url) log.write('\n') time.sleep(3)if __name__ == '__main__': stime = datetime.datetime.now() print stime url = 'http://data.gdeltproject.org/events/index.html' url_list = get_url_list(url) pool = multiprocessing.Pool() #开启进程池,使用多进程提高下载速度 pool.map(get_url_data, url_list) etime = datetime.datetime.now() print etime print etime - stime
阅读全文
0 0
- 谷歌GDELT数据下载代码
- 谷歌GDELT数据说明
- GDELT项目介绍
- 数据收集代码示例下载路径
- J2ME联网请求和下载数据代码
- 关于数据下载部分代码记载
- 代码实现HDFS数据上传和下载
- PHPExcel下载(从数据库获取数据)示例代码
- PHPExcel下载(从数据库获取数据)示例代码
- 使用Kettle从国家统计局下载行政区划代码数据
- 代码下载
- 下载代码
- 下载代码
- 下载代码
- 数据下载
- 电子表格数据导入数据库和数据库下载数据到excel PHP代码phpexecl
- Control Study -> 主表和子表数据同时在绑定控件显示(示例代码下载)
- Control Study -> Asp.net几个较复杂数据控件(Repeater/DataList/DataGrid)用法 (示例代码下载)
- mySql中Truncate的用法
- window下wps转pdf或html
- 浅谈分布式系统的基本问题:可用性与一致性
- LeetCode53. Maximum Subarray
- 关于在手机浏览器中a标签点击出现淡蓝色背景的解决方法
- 谷歌GDELT数据下载代码
- There is no Action mapped for namespace [/] and action name [struts2Test!test] associated with conte
- 锁屏界面上显示Activity
- 西南交通大学第十三届ACM决赛 D.Music Problem【Bitset+背包/思维+背包】
- mysql数据库读写分离的好处
- gets输入指针
- Mac下一键安装Apache/Nginx+MySQL+PHP开发环境 及各版本测试PHP探针
- 端口相关
- async/await 异步函数