R:爬取北京碳排放权电子交易平台历史成交行情数据

R:爬取北京碳排放权电子交易平台历史成交行情数据

这个图表的链接在这里:https://www.bjets.com.cn/trans/jydt/index/trans-deal-erver-day.jsp?prodCateId=95182#

是一个 JavaScript 图表,一般这种图表都会使用一些数据接口,大概率是个 json 的数据接口,在网页上点击鼠标右键选择 Inspect,不同浏览器的叫法不同,一般可以使用 Fn + F12 调出审查元素窗口。

然后刷新网页(Ctrl/Command + R),点击 Network,找到 XHR 页面,可以发现图表的原始数据就在这里了:

这就是个 json 格式的数据,把它下载下来最方便的方法就是调用 curl 工具,可以用下图的方法直接复制 curl 请求:

大概是这样的:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

curl 是一个模拟浏览器的请求的终端工具,Mac 系统的电脑会自带这个工具,Windows 系统的用户需要自行下载安装,我给大家找了篇参考教程:Windows64 位系统curl命令安装及使用,最简单的方法就是:

  1. 从这里下载:https://curl.haxx.se/windows/dl-7.67.0_5/curl-7.67.0_5-win64-mingw.zip
  2. 解压下载好的文件,拷贝curl.exe(I386和AMD64文件下的curl.exe均可)文件到 C:\Windows\System32,这是个全局环境变量。

接下来就可以开始数据下载和整理了,(我在 curl 语句的最后添加了 -o temp.json,表示输出为 temp.json 文件)。

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

我们把年份加上,然后再整理整理:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

可以把数据导出:

1
2
3
4
5
6
7
8
9
10
11
12
# csv 格式
library(readr)
write_csv(df, "carbon.csv")

# xlsx 格式
install.packages("writexl")
library(writexl)
write_xlsx(df, "carbon.xlsx")

# dta 格式
library(haven)
write_dta(df, "carbon.dta", version = 15)

我们还可以把这个网页上的图表自己画出来:

首先可以尝试使用 highcharter 包,这个包绑定了 Highcharts 图表库(一个商业的 JS 图表库,所以这个包绘制的图表不能用于商业和政府用途)。

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

用 ggplot2 + cowplot 可以绘制出来一幅双轴图:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

还可以做一些简单的分析,例如观察成交均价的分布:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

显然不是正态分布。

再例如计算移动均线:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

知识星球附件链接:https://t.zsxq.com/fY3f6yR

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×