You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R实现网页抓取,获取2020年2-3月每日price report

用R批量抓取FCA每日价格报告并保存为独立Excel工作表

所需R包

首先安装并加载必要的工具包:

install.packages(c("httr", "rvest", "openxlsx", "lubridate"))
library(httr)
library(rvest)
library(openxlsx)
library(lubridate)

步骤说明与代码实现

  1. 生成目标日期序列
    生成2020年2月1日至3月31日的所有日期,并转换成网站表单要求的格式(示例为dd/mm/yyyy,需匹配网站实际格式):
# 生成日期序列
date_range <- seq(ymd("2020-02-01"), ymd("2020-03-31"), by = "day")
# 格式化为网站兼容的字符串
formatted_dates <- format(date_range, "%d/%m/%Y")
  1. 模拟表单请求抓取数据
    通过浏览器开发者工具(F12)分析网站提交日期时的表单参数,构造POST请求获取对应日期的报告数据:
# 初始化Excel工作簿
wb <- createWorkbook()

# 循环处理每个日期
for (i in seq_along(formatted_dates)) {
  current_date <- formatted_dates[i]
  current_ymd <- date_range[i]
  
  # 构造POST请求参数(需根据网站实际表单参数调整)
  post_params <- list(
    txtDate = current_date,
    ddlReportType = "Daily Price Report", # 确认报告类型的参数值
    btnGetData = "Get Data" # 提交按钮的参数名
  )
  
  # 发送POST请求
  response <- POST(
    url = "https://fcainfoweb.nic.in/reports/report_menu_web.aspx",
    body = post_params,
    encode = "form"
  )
  
  # 检查请求是否成功
  if (http_status(response)$category != "Success") {
    message(paste("请求", current_date, "失败,跳过"))
    next
  }
  
  # 解析页面中的表格数据
  page_html <- read_html(response)
  price_table <- page_html %>% html_table(fill = TRUE)
  
  # 检查是否抓取到有效表格
  if (length(price_table) == 0) {
    message(paste(current_date, "无有效报告数据,跳过"))
    next
  }
  
  # 提取目标表格(根据页面结构调整索引)
  df <- price_table[[1]]
  
  # 创建工作表并写入数据,工作表名称用日期简写
  sheet_name <- format(current_ymd, "%Y-%m-%d")
  addWorksheet(wb, sheetName = sheet_name)
  writeData(wb, sheet = sheet_name, x = df)
  
  message(paste("已成功保存", current_date, "的报告数据"))
}

# 保存最终Excel文件
saveWorkbook(wb, file = "FCA_2020_Feb_Mar_Price_Reports.xlsx", overwrite = TRUE)

关键注意事项

  • 表单参数验证:必须通过浏览器开发者工具确认网站表单的实际参数名与值,比如ddlReportType的选项值、提交按钮的参数名,上述代码中的参数为示例,需根据实际情况调整。
  • 异常处理:代码包含请求失败、无数据的跳过逻辑,可根据需求添加重试机制。
  • 表格解析调整:若页面存在多个表格,需修改price_table[[n]]的索引,确保提取到正确的价格报告表格。

内容的提问来源于stack exchange,提问作者Debika Ghosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:21:58