如何使用R从javascript饼图中抓取网络数据?

亚历克斯·贝多(AlexBădoi)

我有:

library(XML)

my_URL <- "http://www.velocitysharesetns.com/viix"

tables <- readHTMLTable(my_URL)

饼形图

以上仅输出位于页面顶部的表。看起来饼图已被忽略,而javascript可以解释这一事实。是否有简单的解决方案来提取图表中的两个百分比数字?

看了一下,RSelenium但是我遇到了一些我无法找到任何解决方案的错误。

> RSelenium::startServer()
Error in if (file.exists(file) == FALSE) if (!missing(asText) && asText ==  : 
  argument is of length zero
In addition: Warning messages:
1: startServer is deprecated.
Users in future can find the function in file.path(find.package("RSelenium"), "example/serverUtils").
The sourcing/starting of a Selenium Server is a users responsiblity. 
Options include manually starting a server see vignette("RSelenium-basics", package = "RSelenium")
and running a docker container see  vignette("RSelenium-docker", package = "RSelenium") 
2: running command '"java" -jar "\\med-fs01/Home/Alex.Badoi/R/win-library/3.3/RSelenium/bin/selenium-server-standalone.jar" -log "\\med-fs01/Home/Alex.Badoi/R/win-library/3.3/RSelenium/bin/sellog.txt"' had status 127 
3: running command '"wmic" path win32_process get Caption,Processid,Commandline /format:htable' had status 44210 
> 

根据Phillip的回答,我想出了一个流动的解决方案:

library(XML)



# extarct HTML

doc.html = htmlTreeParse('http://www.velocitysharesetns.com/viix',
                         useInternal = TRUE)


# convert to text

htmltxt <- paste(capture.output(doc.html, file=NULL), collapse="\n")

# get location of string

pos = regexpr('CBOE SHORT-TERM VIX FUTURE', htmltxt)

# extarct from "pos" to nchar to end of string 

keep = substr(htmltxt, pos, pos+98)

输出:

> keep
[1] "CBOE SHORT-TERM VIX FUTURE DEC 2016', 81.64],\n\n    ['CBOE SHORT-TERM VIX FUTURE JAN 2017', 18.36],\n"
菲利普·D

使用RSelenium

此解决方案对我来说使用Rselenium(在使用Windows 7并检查了网页的源代码之后)有效。请注意,我使用chromedriver.exe

library(RSelenium)
checkForServer(update = TRUE)

#### I use Chromedriver
startServer(args = c("-Dwebdriver.chrome.driver=C:/Stuff/Scripts/chromedriver.exe")) 

remDr <- remoteDriver(remoteServerAddr = "localhost", browserName="chrome", port=4444)

### Open Chrome
remDr$open()

remDr$navigate("http://www.velocitysharesetns.com/viix")

b <- remDr$findElements(using="class name", value="jqplot-pie-series")

sapply(b, function(x){x$getElementAttribute("outerHTML")})

最后一条命令返回

[[1]]
[1] "<div class=\"jqplot-pie-series jqplot-data-label\" style=\"position: absolute; left: 100px; top: 106px;\"><div style=\"color:white;font-weight:bold;\">82%</div></div>"

[[2]]
[1] "<div class=\"jqplot-pie-series jqplot-data-label\" style=\"position: absolute; left: 159px; top: 67px;\"><div style=\"color:white;font-weight:bold;\">18%</div></div>"

您会看到百分比数字出现在此处并且可以轻松提取。

仅使用纯HTML

另外,还可以通过仅读取html源来获取数据,因为已经包含了数据。在源代码中的某个地方,您会找到:

<script type="text/javascript" language="javascript">
$(document).ready(function(){
var data = [


['CBOE SHORT-TERM VIX FUTURE DEC 2016', 81.64],

['CBOE SHORT-TERM VIX FUTURE JAN 2017', 18.36],

];

这就是您要寻找的。数字在图中显示之前四舍五入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用R从网络上下载javascript加载数据?棘手的网页抓取

来自分类Dev

使用R从网络上下载javascript加载数据?棘手的网页抓取

来自分类Dev

如何在饼图中对齐数据标签

来自分类Dev

如何使用网络抓取从实时表中获取数据?

来自分类Dev

R:饼图中使用 Plotly 的下标

来自分类Dev

dc.js:如何使用不同的输入阈值更改饼图中的数据分布?

来自分类Dev

如何在饼图中使用图例作为HighCharts中的数据标签

来自分类Dev

dc.js:如何使用不同的输入阈值更改饼图中的数据分布?

来自分类Dev

如何在 html 模板 (ASP.NET) 中的 Javascript 饼图中使用 AJAX 方法显示从客户端检索的动态服务器端数据

来自分类Dev

如何从网络上的网址中抓取数据?

来自分类Dev

如何抓取不在标签中的网络数据

来自分类Dev

使用python html错误抓取网络数据

来自分类Dev

如何在 R 中抓取网络表

来自分类Dev

如何处理饼图中的无数据?

来自分类Dev

如何在此3D饼图中解析数据?

来自分类Dev

如何处理饼图中的无数据?

来自分类Dev

使用R自动进行网络抓取

来自分类Dev

如何通过网络使用Python抓取图表?

来自分类Dev

如何使用python跟踪网络抓取进度

来自分类Dev

如何使用Ubuntu终端进行网络抓取?

来自分类Dev

使用 R 从 Finviz 网络抓取股票关键统计数据

来自分类Dev

如何使用Python(最好是熊猫)从Javascript表中抓取数据?

来自分类Dev

如何使用python或javascript在<canvas>元素中抓取数据?

来自分类Dev

如何使用 Scrapy 1.4.0 从 javascript 中抓取数据?

来自分类Dev

网络抓取td数据

来自分类Dev

使用R从TripAdvisor抓取数据

来自分类Dev

使用R Web抓取数据

来自分类Dev

烦恼如何从该网站上抓取数据(使用R)

来自分类Dev

如何使用R从框架内的网站抓取数据?

Related 相关文章

  1. 1

    使用R从网络上下载javascript加载数据?棘手的网页抓取

  2. 2

    使用R从网络上下载javascript加载数据?棘手的网页抓取

  3. 3

    如何在饼图中对齐数据标签

  4. 4

    如何使用网络抓取从实时表中获取数据?

  5. 5

    R:饼图中使用 Plotly 的下标

  6. 6

    dc.js:如何使用不同的输入阈值更改饼图中的数据分布?

  7. 7

    如何在饼图中使用图例作为HighCharts中的数据标签

  8. 8

    dc.js:如何使用不同的输入阈值更改饼图中的数据分布?

  9. 9

    如何在 html 模板 (ASP.NET) 中的 Javascript 饼图中使用 AJAX 方法显示从客户端检索的动态服务器端数据

  10. 10

    如何从网络上的网址中抓取数据?

  11. 11

    如何抓取不在标签中的网络数据

  12. 12

    使用python html错误抓取网络数据

  13. 13

    如何在 R 中抓取网络表

  14. 14

    如何处理饼图中的无数据?

  15. 15

    如何在此3D饼图中解析数据?

  16. 16

    如何处理饼图中的无数据?

  17. 17

    使用R自动进行网络抓取

  18. 18

    如何通过网络使用Python抓取图表?

  19. 19

    如何使用python跟踪网络抓取进度

  20. 20

    如何使用Ubuntu终端进行网络抓取?

  21. 21

    使用 R 从 Finviz 网络抓取股票关键统计数据

  22. 22

    如何使用Python(最好是熊猫)从Javascript表中抓取数据?

  23. 23

    如何使用python或javascript在<canvas>元素中抓取数据?

  24. 24

    如何使用 Scrapy 1.4.0 从 javascript 中抓取数据?

  25. 25

    网络抓取td数据

  26. 26

    使用R从TripAdvisor抓取数据

  27. 27

    使用R Web抓取数据

  28. 28

    烦恼如何从该网站上抓取数据(使用R)

  29. 29

    如何使用R从框架内的网站抓取数据?

热门标签

归档