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

基于Div ID使用RStudio爬取政府网站数据的技术求助

爬取基于Div结构的政府网站数据

问题分析

你之前的代码使用了错误的选择器(.someTable、拼写错误的cotainer),这些元素在目标页面中并不存在。该页面采用带ID的Div而非Table组织数据,需要先定位到正确的Div容器,再提取内部数据。

正确步骤与代码

1. 定位数据容器

首先通过浏览器开发者工具(F12)查看页面结构,找到包含目标数据的父Div的ID或类名。从截图推测,数据大概率在某个特定ID的Div内(比如类似#divDashboard的元素)。

2. 提取数据的示例代码

library(rvest)
library(dplyr)

# 目标URL
url <- "https://nreganarep.nic.in/netnrega/all_lvl_details_dashboard_new.aspx?Fin_Year=2023-2024&Digest=WJEEpOm1k0Ptz2KJJGSoqA"

# 读取页面
page <- read_html(url)

# 步骤1:定位到包含数据的父Div(替换成你实际找到的ID/类名)
data_container <- page %>% html_element("#divData") # 示例ID,需根据实际页面调整

# 步骤2:提取所有数据行(假设每行是一个带特定类的Div,比如.row)
data_rows <- data_container %>% html_elements(".row") # 需根据实际类名调整

# 步骤3:遍历行,提取每个字段(假设每个字段是.col类的Div)
extracted_data <- lapply(data_rows, function(row) {
  fields <- row %>% html_elements(".col") %>% html_text(trim = TRUE)
  # 将字段转为数据框行,根据实际字段数量调整列名
  data.frame(
    区域 = fields[1],
    已完成项目数 = fields[2],
    总支出 = fields[3],
    stringsAsFactors = FALSE
  )
}) %>% bind_rows()

# 查看结果
print(extracted_data)

注意事项

  • 动态内容处理:如果read_html无法获取数据,说明页面是JS动态加载的,此时需要使用RSelenium或rvest配合V8引擎渲染JS后再爬取。
  • 选择器验证:务必用开发者工具确认选择器的正确性,避免拼写错误或指向不存在的元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:15:20