【问题标题】:Why is my scraping code not copying a table from a webpage?为什么我的抓取代码没有从网页复制表格?
【发布时间】:2020-03-27 16:57:34
【问题描述】:

我正在尝试从网页复制表格。 我试过了:

library(XML)
url <- "https://www.cmegroup.com//content/cmegroup/en/trading/fx/g10/euro-fx_quotes_settlements_futures.html"
table1 <- readHTMLTable(url,stringsAsFactors = FALSE)
table1

但这不起作用。

【问题讨论】:

  • 但这不起作用。”你能详细说明一下吗?
  • 对html不太熟悉,但我认为页面存在问题(或者可能是故意的)。查看页面源代码并在第 1193 行看到表格。但我找不到数据(&lt;tbody&gt; 为空)。
  • 您是否尝试过删除 TLD 后多余的正斜杠?

标签: html r xml web-scraping


【解决方案1】:

表格不在页面源上。另一种解决方案是使用 XMLHttpRequests (XHR)

library(jsonlite)

tbl <- fromJSON("https://www.cmegroup.com/CmeWS/mvc/Settlements/Futures/Settlements/58/FUT?tradeDate=03/26/2020&strategy=DEFAULT&pageSize=500&_=1585333229793")
tbl <- tbl$settlements

PS:其他日期,请在网址(03/26/2020)处更改日期部分

输出

tbl

#     month    open     high      low     last  change  settle  volume openInterest
# 1  APR 20 1.08900 1.10640B  1.08870 1.10440A +.01750 1.10520     282        4,215
# 2  MAY 20 1.09165 1.10775B  1.09045 1.10620A +.01715 1.10675     651        2,627
# 3  JUN 20 1.09230  1.10960  1.09090  1.10685 +.01715 1.10800 205,562      548,213
# 4  JLY 20 1.10650 1.11015B 1.10605A 1.10830A +.01710 1.10905       2            2
# 5  SEP 20 1.09625  1.11265  1.09435 1.11020A +.01710 1.11120     939        3,646
# 6  DEC 20 1.10645 1.11480B 1.10315A 1.11310A +.01725 1.11390      48        2,047
# 7  MAR 21 1.11000 1.11620B 1.10850A 1.11620B +.01725 1.11695       3          240
# 8  JUN 21       - 1.11680B        - 1.11680B +.01740 1.11960       0          144
# 9  SEP 21       -        -        -        - +.01745 1.12210       0            1
# 10 DEC 21       -        -        -        - +.01755 1.12460       0            3
# 11 MAR 22       -        -        -        - +.01770 1.12715       0            0
# 12 JUN 22       -        -        -        - +.01785 1.12985       0            0
# 13 SEP 22       -        -        -        - +.01805 1.13280       0            0
# 14 DEC 22       -        -        -        - +.01830 1.13560       0            0
# 15 MAR 23       -        -        -        - +.01845 1.13815       0            0
# 16 JUN 23       -        -        -        - +.01865 1.14110       0            0
# 17 SEP 23       -        -        -        - +.01885 1.14385       0            0
# 18 DEC 23       -        -        -        - +.01905 1.14660       0            0
# 19 MAR 24       -        -        -        - +.01925 1.14935       0            0
# 20 JUN 24       -        -        -        - +.01945 1.15215       0            0
# 21 SEP 24       -        -        -        - +.01965 1.15490       0            0
# 22 DEC 24       -        -        -        - +.01985 1.15765       0            0
# 23 MAR 25       -        -        -        - +.02005 1.16040       0            0
# 24  Total                                                    207,487      561,138

编辑:抓取选项页面

ulr <- "https://www.cmegroup.com/CmeWS/mvc/Quotes/Option/8118/G/J0/ATM?_=1585348999038"
jsonlist <- fromJSON("https://www.cmegroup.com/CmeWS/mvc/Quotes/Option/8118/G/J0/ATM?_=1585348999038")

putcall 列在单独的数据框中

df_put <- jsonlist$optionContractQuotes$put
df_call <- jsonlist$optionContractQuotes$call

关注this link 找到合适的XHR url

【讨论】:

  • 我也无法复制选项页面。我试过: tbl cmegroup.com/trading/fx/g10/…) tbl$settlements deuropt
猜你喜欢
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
相关资源
最近更新 更多