我一直在搜索,我唯一可以找到将HTML图像转换为.jpg,.gif或其他任何内容的方法是拍摄屏幕截图。 (或其他方式,但始终通过输出)
我想要的是内部,例如,我有一个谷歌图表的图表代码:
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["geochart"]});
google.setOnLoadCallback(drawRegionsMap);
function drawRegionsMap() {
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity'],
['Germany', 200],
['United States', 300],
['Brazil', 400],
['Canada', 500],
['France', 600],
['RU', 700]
]);
var options = {};
var chart = new google.visualization.GeoChart(document.getElementById('regions_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="regions_div" style="width: 900px; height: 500px;"></div>
</body>
</html>
所以,我的问题是,是否可以使用Python将此代码转换为图像?
答案 0 :(得分:3)
可能的方法:
生成浏览器,加载html,让它渲染,截取屏幕截图。您可以在无头X服务器(https://github.com/brenden/node-webshot)或真实浏览器中使用无头浏览器(https://wiki.python.org/moin/PyWebkitGtk)或几乎浏览器。
使用 Javascript 执行相同的操作(https://html2canvas.hertzen.com/)仍需要您的Javascript在某处运行,无论是node.js还是命令行或无头或真实浏览器。
向Google Charts询问图片文件,而不是在画布上绘图(https://developers.google.com/chart/interactive/docs/printing)。 YMMV,这取决于Google提供的内容。您可以使用其他一些图表库。