如何从网页交互式图表提取曼谷PM2.5数据并在R中创建Data Frame?
可行,具体方案如下
数据提取
- 目标网站支持直接下载结构化数据,不用费劲爬交互式图表:进入页面后拉到最底部,找到Download Data板块,选择2016年3月到2021年3月的时间范围,就能下载包含小时最高值、日均值的CSV文件,这是最省事的方式。
- 要是想用代码自动化获取,也可以用R的
rvest包解析页面,定位下载链接自动抓取,但直接手动下载效率更高,没必要折腾。
R中创建Data Frame步骤
- 读取下载好的CSV:
# 替换成你本地的文件路径 pm25_data <- read.csv("bangkok_pm25.csv", header = TRUE)
- 处理日期并筛选时间范围:
# 把日期列转成日期格式 pm25_data$date <- as.Date(pm25_data$date) # 筛选指定时间段的数据 target_data <- subset(pm25_data, date >= "2016-03-01" & date <= "2021-03-31")
- 提取需要的字段(列名以你下载的CSV实际为准,比如可能叫
max_hourly_pm25、daily_average_pm25):
final_df <- target_data[, c("date", "max_hourly_pm25", "daily_average_pm25")]
- 验证结果:
# 查看前几行数据 head(final_df)
小提示
- 下载数据时要确认勾选了小时值和日均值的选项,避免漏拿需要的数据。
- 如果非要用爬虫,别直接去爬图表的前端渲染数据,那会很麻烦,直接抓下载链接更靠谱。
内容的提问来源于stack exchange,提问作者Christopher
相关产品推荐
相关产品推荐

