首页 > 解决方案 > R rvest 检索空表

问题描述

我正在尝试两种策略从网络表中获取数据:

library(tidyverse)  
library(rvest)                        

webpage <- read_html('https://markets.cboe.com/us/equities/market_statistics/book/')
data <- html_table(webpage, fill=TRUE)
data[[2]]

''

library("httr")
library("XML")

URL <- 'https://markets.cboe.com/us/equities/market_statistics/book/'
temp <- tempfile(fileext = ".html")
GET(url = URL, user_agent("Mozilla/5.0"), write_disk(temp))

df <- readHTMLTable(temp)
df <- df[[2]]

他们俩都返回一个空表。

标签: rweb-scrapingrvest

解决方案


刷新您的 url 时,您可以在网络选项卡中找到另一个端点动态检索值。您需要为服务器添加一个referer 标头以返回包含表数据的json。

library(httr)

headers = c('Referer'='https://markets.cboe.com/us/equities/market_statistics/book/')
d <- content(httr::GET('https://markets.cboe.com/json/bzx/book/FIT', httr::add_headers(.headers=headers)))
print(d$data)

推荐阅读