是否以客户身份将“导出到cvv”选项添加到Highcharts图表上?

时间:2018-08-07 08:56:45

标签: javascript highcharts export-to-csv

虽然有关于此问题的文档,但我发现自己经历了很多痛苦,试图了解要实现我想要的目标需要做什么。

我是一个没有特权的用户,该网站具有要导出到csv的Highcharts图表。我要导出此URL和域中类似网页中的高图:

https://www.racingandsports.com.au/horse/taiyoo-660888-tab-rating

特别是我想要第一个图表。如您所见,它具有一个下拉菜单,该菜单允许打印图像,并以jpeg,png,pdf和svg格式下载。我已经看到了JSFiddle代码片段,下拉菜单中有一个导出到csv选项。我尝试使用脚本运行Greasemonkey以及通过Web浏览器上的inspect element菜单进行编辑。我在Ubuntu上使用Firefox。

这是作为客户端可实现的吗,或者如果我想获取此数据,是否应该使用beautifulsoup程序对自己的Python进行编码以刮取它?

1 个答案:

答案 0 :(得分:0)

由于网站使用Highcharts v4.0.4 ,并且可以从 v5.0.11 导出到CSV,因此该过程不会很棘手。不会说不可能做到这一点。

您需要从浏览器开发者控制台中手动添加export-data.js Highcharts模块的主体,但是首先需要通过一些运行该模块所需的功能和参数来扩展Highcharts。我将尝试逐步描述过程,并且要尽可能清楚。

  1. 打开网站,
  2. 打开浏览器的开发者控制台
  3. 在控制台中粘贴以下代码,然后按Enter键:

    Highcharts.win = window;
    Highcharts.inArray = function(item, arr, fromIndex) {
      return (
        Highcharts.indexOfPolyfill ||
        Array.prototype.indexOf
      ).call(arr, item, fromIndex);
    };
    Highcharts.find = function(arr, fn) {
      var i,
      length = arr.length;
    
      for (i = 0; i < length; i++) {
        if (fn(arr[i], i)) {
          return arr[i];
        }
      }
    };
    
  4. 然后,只需打开https://code.highcharts.com/5.0.11/modules/export-data.src.js,复制整个代码,将其粘贴到控制台中并运行它即可。

现在,您应该可以通过打开下拉菜单并单击顶部列表中的第一个“未定义”来下载CSV。

我对其进行了测试,并且可以正常工作。