本项目主要利用R和Python脚本对EIA(美国能源信息署)的周度油品数据进行更新,并进行数据可视化处理,最终在微信中进行自动发送。
EIA周度源数据格式样本:
输出图片:
配置事项:
-
首先安装R环境和python环境
-
00_0_install_packages.R为相关R包的安装文件,直接点击00_0_auto.bat文件可安装相关包
-
00_1_history_web.R为历史数据更新文件,在数据有较长时间未运行时,可用该文件进行补全,补全范围为距今5年的数据,直接点击00_1_auto.bat可运行。 (注:抓取的网页为https://www.eia.gov/petroleum/supply/weekly/archive/,鉴于EIA官网对爬虫的限制,运行速度较慢)
-
00_2_update_web.R为每周数据更新的主文件,主要生成完整的最新数据集(在data文件夹中),以及最新的图片(在pic文件夹中),点击00_2_auto.bat可运行。(注:EIA周度数据每次第一时间更新都在https://ir.eia.gov/wpsr/table9.csv链接中)
-
00_3_send_pic.py,wxautov1.py和wxautov2.py为python脚本下的微信自动发送脚本,使用时需要将微信聊天窗口打开方可运行,点击00_3_auto.bat可运行。(注:wxautov1.py及wxautov2.py,均引用自https://github.com/cluic/wxauto的开源项目)
注意事项:
- 安装R之后需要检查电脑环境变量中,R环境下的bin文件中的Rscript.exe有没有被添加,否则上述的bat文件都无法运行,只能通过打开EIA_update_weekly.Rproj,在RStudio中对相应文件进行运行。
- 相关的python脚本可能会有失效的问题,最好在微信的PC版更新时进行测试。详情可以关注https://github.com/cluic/wxauto的开源项目
- EIA周度数据更新时间一般为夏令时周三的22:30或冬令时周三的23:30,相关.bat文件可根据需要,在对应系统的任务管理中进行配置,从而进行数据公布时的第一时间更新,并可针对不同系统进行修改,此处只给出了windows系统的方案。
在R语言编写版本的基础上加入了python的数据更新部分,分为三个py脚本文件:
- 01_eia_history.py,该脚本主要针对历史数据的抓取类似于00_1_history_web.R脚本文件的作用。
- 02_eia_update.py,该脚本主要用于生成可视化的表格,文件名为eia_tab.png。
- 03_eia_plot.py,该脚本主要用于生成最终的组图,文件名为eia.png。
注意事项:
- 目前绘制组图的模块seaborn.objects尚存许多待解决的问题,例如:不支持中文、线条的格式无法单独设定等等,还需要进一步更新。
- 该添加版本可与之前发布的自动发送脚本进行整合,编译成相关exe文件,可自行运用pyinstaller进行操作。
Python版本进行了较大更新,针对所有函数进行了统一调用,方便进行执行文件编译,目前执行文件实例如下:

其中:
- Setup.py文件为统一调度脚本,也即是执行文件操作界面。
- spider_clean.py为历史数据采集更新和清洗脚本,包含任务序号中的1-3。
- tab_update.py为表格图的更新,即任务序号中的4。
- pic_update.py为季节图的更新及双图合并,包含任务序号中的5-6。
- wechat_send为微信发送图片功能,包含任务序号中的7。
注意事项:
- 绘制组图已妥协为seaborn+Matplotlib循环生成的方式,运行速度一般。
- 自动发送选项正在开发中,有兴趣者可自行调用函数开发。
Python版本进行了一些更新,加入了数据缺失的提醒功能,以及默认自动运行的config.ini文件配置


