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

求助:使用R从reiwa租房页面的Property trends图表提取时间序列数据

提取reiwa.com.au租房趋势图表的时间序列数据

问题原因

rvest直接爬取不到数据,是因为页面的Property trends图表是通过JavaScript动态渲染的,静态HTML源码里并不包含图表的原始数据,rvest只能获取初始加载的静态内容,所以拿不到目标时间序列。


解决方案1:用RSelenium模拟浏览器渲染页面

RSelenium可以模拟真实浏览器加载页面,等待JS执行完成后再提取数据,步骤如下:

  1. 安装依赖包并配置浏览器驱动(以Chrome为例):
install.packages("RSelenium")
# 确保ChromeDriver已安装并添加到系统PATH,或通过rsDriver自动下载匹配版本
  1. 编写代码提取数据:
library(RSelenium)
library(rvest)

# 启动Chrome驱动(随机端口避免冲突)
driver <- rsDriver(browser = "chrome", port = sample(4000:5000, 1))
remDr <- driver[["client"]]

# 访问目标页面
remDr$navigate("https://reiwa.com.au/rent/")

# 等待图表加载完成(根据网络情况调整等待时间)
Sys.sleep(6)

# 提取Highcharts图表的时间序列数据(匹配"Property trends"标题的图表)
chart_series <- remDr$executeScript(
  "return window.Highcharts.charts.find(c => c.title.textStr === 'Property trends').series.map(s => ({
    series_name: s.name,
    time_series: s.data.map(d => [new Date(d.x).toISOString().slice(0,10), d.y])
  }));"
)

# 关闭浏览器和驱动
remDr$close()
driver$server$stop()

# 查看提取的两组时间序列数据
print(chart_series)

解决方案2:直接调用网站的API接口(更高效)

通过浏览器抓包可以找到图表数据的来源API,跳过页面渲染直接请求数据:

  1. 抓包找API:

    • 打开浏览器开发者工具(F12)→ 切换到「Network」标签→ 刷新页面
    • 筛选「XHR」类型请求,查找包含趋势数据的接口(比如名称含trend或rent的请求)
  2. 编写代码请求API:

library(httr)
library(jsonlite)

# 替换为抓包得到的真实API地址
api_url <- "https://reiwa.com.au/api/v1/rent/trends"

# 模拟浏览器请求头,避免被反爬拦截
headers <- add_headers(
  "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
  "Referer" = "https://reiwa.com.au/rent/"
)

# 发送请求并解析JSON数据
response <- GET(api_url, headers)
trend_data <- fromJSON(content(response, "text", encoding = "UTF-8"))

# 提取两组时间序列数据
series_1 <- trend_data$data$series[[1]]
series_2 <- trend_data$data$series[[2]]

print(series_1)
print(series_2)

注意事项

  • 网站可能会更新API接口或添加反爬机制,若API请求失败,需重新抓包确认接口地址和请求参数
  • 频繁请求可能会被网站封禁IP,建议添加请求间隔或使用代理
  • RSelenium的驱动版本需与浏览器版本匹配,避免出现启动失败问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:30:50