【问题标题】:Scraping JSON link is not working using fromJSON(url)使用 fromJSON(url) 抓取 JSON 链接不起作用
【发布时间】:2019-05-31 00:19:19
【问题描述】:

对于网页抓取,我通常使用jsonlite::fromJSON(url) 命令,它通常可以为我完成这项工作。然而这次它在另一个文本中。 基本上是这样的:

jQuery([ 
JSON stuff that I am more used to 
]);

如何轻松解决这个问题? 当我调用地址时,实际数据看起来像这样(我已经点击它更漂亮了):

jQuery(
[
{"Date":"2019-05-31T00:00:00+02:00","FromTime":"2019-05-31T00:00:00+02:00","ToTime":"2019-05-31T00:15:00+02:00","Value":3315.9120000000003,"Value2":2584.244,"Value3":731.668},
{"Date":"2019-05-31T00:00:00+02:00","FromTime":"2019-05-31T00:15:00+02:00","ToTime":"2019-05-31T00:30:00+02:00","Value":3386.238,"Value2":2655.814,"Value3":730.424}
]
);

当我尝试让函数解析它时得到的错误消息是

Error in parse_con(txt, bigint_as_char) : 
  lexical error: invalid char in json text.
                                       jQuery([{"Date":"2019-05-29T00:
                     (right here) ------^

最终目标只是拥有一个数据框来继续工作。

【问题讨论】:

  • 我不明白问题是什么。 jQuery 函数中的内容是有效的 JSON —test it yourselfjQuery 来自哪里,你用它做什么?
  • @camille 谢谢你回答它说Error in parse_con(txt, bigint_as_char) : lexical error: invalid char in json text. jQuery (right here) ------^
  • 在包含一些代码之前还不清楚。 jQuery 是一个 javascript 库,所以我不确定你在这里用它做什么或它来自哪里
  • @camille 这就是我在处理数据之前所做的全部工作:) library(jsonlite) Raw<-fromJSON("https://ws.50hertz.com/web02/api/PhotovoltaicActual/ListRecords?filterDateTime=2019-05-30T22:23:14.716Z&callback=jQuery&_=1559254994256")
  • 是否有您正在使用的 API?该 URL 有 jQuery 作为回调,但我不知道为什么。我想您可以做的一件事是尝试仅读取从该 URL 作为字符串返回的内容,而不是立即将其从 JSON 转换,然后删除 jQuery 函数,then 解析它。但是,如果有 API 文档或您从哪里获得此文档,我会从那里开始

标签: r json web-scraping


【解决方案1】:

你可以从 rvest 回报中减去你想要的东西。看起来 jquery return 将具有开始和结束语法

library(rvest)
library(jsonlite)

url <- 'https://ws.50hertz.com/web02/api/PhotovoltaicActual/ListRecords?filterDateTime=2019-05-30T22:23:14.716Z&callback=jQuery&_=1559254994256'
r <- read_html(url) %>%
  html_node("p") %>% 
  html_text() 

x <- jsonlite::fromJSON(substr(r[1], 8, nchar(r) - 2))

【讨论】:

    猜你喜欢
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多