r - 使用 rvest 抓取并将 html 输出转换为数据框
问题描述
当在 R 中抓取孟买证券交易所网站以获取财务结果时,我得到了 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
从文本输出中提取数字和字符。但是反斜杠字符使它变得困难。表格格式应该是这样的:
解决方案
url<-"https://api.bseindia.com/BseIndiaAPI/api/TabResults/w?scripcode=500470&tabtype=RESULTS"
library(rvest)
page<-html_session(url)
json<-readBin(page$response$content, what="json")
library(jsonlite)
df<-fromJSON(json)
df<-fromJSON(df)
#Result in CR
df$resultinCr
#result in Million
df$resultinM
结果为 JSON 格式。使用 JSONLITE 包解析 JSON。
推荐阅读
- java - 尽管设备已收到消息,但未从 SMS 检索器 API 接收 SMS 内容
- node.js - 如何使用正确的内容类型将图像上传到 Azure Blob 存储
- c++ - 实例化的立方体只显示一次
- javascript - chrome 扩展中的 POST 请求数据和地址栏更改
- mongodb - 如何更改 MongeDB 中聚合值的输出
- python - 进行 API 查询时出现 ChunkedEncodingError
- python - 旋转 3d 图看起来像 2d 图(无透视)
- python - 如何以及谁应该将 wheel 指定为 Python 包依赖项?
- mysql - 如何使用 SQL 查询计算时差?
- python - 返回 Dash 中的数字