使用R的rvest抓取Domain网站Market Trends表格数据求助
解决R语言抓取Domain网站Market Trends表格数据的问题
原代码的问题
- 你使用的CSS选择器
div.css-15dn4s是动态生成的类名,这类类名会随网站前端更新而失效,稳定性极差。 html_attr("table")用法错误,该div标签不存在table属性,无法提取到有效数据。
正确实现方案
Domain郊区页面的"Market Trends"表格数据通常内嵌在页面的JSON脚本中,我们可以通过定位对应script标签提取数据,步骤如下:
- 加载所需R包:
library(rvest) library(dplyr) library(jsonlite)
- 抓取页面并提取目标数据:
# 目标URL url <- "https://www.domain.com.au/suburb-profile/drummoyne-nsw-2047" # 读取页面内容 page <- read_html(url) # 定位包含Market Trends数据的script标签 market_trends_script <- page %>% html_nodes('script[type="application/json"]') %>% html_text() %>% # 筛选包含Market Trends相关数据的条目 grep('marketTrends', ., value = TRUE) %>% # 取第一个匹配的结果(通常就是目标数据) .[1] # 解析JSON数据 market_trends_data <- fromJSON(market_trends_script) # 提取表格数据集(根据实际结构调整,示例为年度销量趋势) trends_table <- market_trends_data$props$pageProps$suburbProfileData$marketTrends$salesByYear
- 验证结果:
运行head(trends_table)即可查看提取到的年份、销量、中位价等表格数据。
注意事项
- 若网站结构更新,可通过
str(market_trends_data)查看完整数据结构,调整提取路径。 - 频繁抓取可能触发反爬机制,建议添加延迟(如
Sys.sleep(2)),并遵守网站robots.txt规则。
内容的提问来源于stack exchange,提问作者user12025050
相关产品推荐
相关产品推荐

