虽然有关于此问题的文档,但我发现自己经历了很多痛苦,试图了解要实现我想要的目标需要做什么。
我是一个没有特权的用户,该网站具有要导出到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进行编码以刮取它?
答案 0 :(得分:0)
由于网站使用Highcharts v4.0.4 ,并且可以从 v5.0.11 导出到CSV,因此该过程不会很棘手。不会说不可能做到这一点。
您需要从浏览器开发者控制台中手动添加export-data.js
Highcharts模块的主体,但是首先需要通过一些运行该模块所需的功能和参数来扩展Highcharts。我将尝试逐步描述过程,并且要尽可能清楚。
在控制台中粘贴以下代码,然后按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];
}
}
};
现在,您应该可以通过打开下拉菜单并单击顶部列表中的第一个“未定义”来下载CSV。
我对其进行了测试,并且可以正常工作。