【发布时间】:2019-05-31 20:54:14
【问题描述】:
当在 R 中抓取 Bombay Stock Exchange 网站以获取财务结果时,我得到了 html 代码。
read_html("https://api.bseindia.com/BseIndiaAPI/api/TabResults/w?scripcode=500470&tabtype=RESULTS") %>%
html_text()
但是我得到如下输出:
[1] "\"{\\\"col1\\\":\\\"(in Cr.)\\\",\\\"col2\\\":\\\"Sep-18\\\",\\\"col3\\\":\\\"Jun-18\\\",\\\"col4\\\":\\\"FY17-18\\\",\\\"resultinCr\\\":[{\\\"title\\\":\\\"Revenue\\\",\\\"v1\\\":\\\"17,902.04\\\",\\\"v2\\\":\\\"16,405.46\\\",\\\"v3\\\":\\\"60,519.37\\\"},....
我应该如何将这些数据提取到数据框中?
我尝试使用gsub 从文本输出中提取数字和字符。但是反斜杠字符使它变得困难。
表格格式应该是这样的:
【问题讨论】:
-
API 返回的是 JSON,而不是 HTML,如果您在 Web 浏览器中打开它,您可以看到它。如果您使用
jsonlite::fromJSON而不是read_html,由于某种原因,您会得到一个JSON 字符串而不是解析结果,因此您需要重新解析:x <- jsonlite::fromJSON(jsonlite::fromJSON('https://api.bseindia.com/BseIndiaAPI/api/TabResults/w?scripcode=500470&tabtype=RESULTS'))...这有点傻,但有效。如果付出的努力足够重要,那么肯定有一个更优雅的解决方案。 -
超顺滑.. 非常感谢
标签: r web-scraping html-parsing rvest