【问题标题】:Data scraping from coinmarketcap从 coinmarketcap 抓取数据
【发布时间】:2021-04-23 03:32:26
【问题描述】:

您好,我正在尝试抓取本页末尾的市场表格“https://coinmarketcap.com/currencies/bitcoin/markets/”

这是我尝试过的

crpyto_url <- read_html("https://coinmarketcap.com/currencies/bitcoin/markets/")
Exchanges <- crpyto_url %>% 
  html_node(xpath = '//*[@id="__next"]/div/div[2]/div/div[3]/div[2]/div[2]/div/table') %>%
  html_text() %>%
  jsonlite::fromJSON()

这是错误

Error in if (is.character(txt) && length(txt) == 1 && nchar(txt, type = "bytes") < : missing value where TRUE/FALSE needed

我不认为错误是相关的,我认为真正的问题是我不知道如何找到与表相关的xpath。

如果有人设法找到 xpath,您能否解释一下找到它的过程。或者链接一些资源。

谢谢

我。

【问题讨论】:

  • 您是否考虑过使用他们的 API,而不是尝试通过网络抓取来访问数据?有一个用于从该网站提取数据的 R 包。在这里阅读:cran.r-project.org/web/packages/coinmarketcapr/…
  • 该表是通过 JS 加载的,所以 rvest 需要某种 API/XHR。或者,您可以查看 RSelenium 进行 JS 抓取。
  • 是的,我尝试了 API,但如果您使用免费版本,它似乎真的很有限。不过我会继续寻找。我要去检查 RSelenium 谢谢

标签: r web-scraping rvest


【解决方案1】:

这可以通过 coingecko API 完成。

url <- "https://api.coingecko.com/api/v3/coins/bitcoin/tickers"
Exchanges <- GET(url)
araw_data <- fromJSON(content(Exchanges, as = "text",encoding = "UTF-8"))
araw_data$tickers$market %>% select(name) %>% pull

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 2021-12-03
    相关资源
    最近更新 更多