使用rvest爬取加德满都AQI预报表返回NA值求助
解决AQI预报表爬取返回NA的问题
你的代码存在几个关键问题,导致无法正确提取目标表格:
- 管道符书写错误:
%>应改为%>% - 元素选择器不准确:
div.section-content并非AQI预报表所在容器,实际预报表格是带有class="aqi-forecast-table"的<table>元素 - 内容提取方式错误:直接使用
html_text()仅会提取纯文本,无法解析表格的结构化数据
修正后的可运行代码如下:
# Load required packages library(rvest) library(dplyr) # Define the URL url <- "https://aqicn.org/city/kathmandu" # Read the HTML content of the page webpage <- read_html(url) # Extract AQI forecast table forecast_table <- webpage %>% html_element("table.aqi-forecast-table") %>% # 精准定位目标表格节点 html_table(header = TRUE) %>% # 将表格解析为结构化数据框 as_tibble() # 转换为tibble格式 print(forecast_table)
补充说明
html_element("table.aqi-forecast-table")可以精准定位到AQI预报表格,避免选中页面其他无关内容html_table(header = TRUE)会自动识别表格表头,将HTML表格转换为可直接使用的数据框- 目前该页面的AQI预报表是静态HTML渲染的,上述代码即可正常提取;若后续页面改为动态JS加载,可尝试结合
RSelenium或V8工具处理动态内容
内容的提问来源于stack exchange,提问作者Bishal Giri
相关产品推荐
相关产品推荐

