用RVest进行抓取并将HTML输出转换为数据框

时间:2019-01-05 15:07:32

标签: r web-scraping html-parsing rvest

在刮擦孟买证券交易所网站以获取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从文本输出中提取数字和字符。但是反斜杠字符使它变得困难。 表格格式应为:

Table Snapshot

1 个答案:

答案 0 :(得分:0)

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。