python - 在 Python 中将 html 表转换为图像(其他解决方案不起作用)
问题描述
我需要将 html 表保存为图像(argb,png),但是 stackoverflow 上的所有解决方案都不适合我的项目,因为它们都使用 os(cmd) 或使用数量有限的 api。我需要无限次保存图片,这必须在 Jupiter Notebook 中工作。
我怎么能做到这一点?谢谢!
解决方案
最简单的解决方案是使用浏览器驱动程序为您的 html 拍照。一般来说,您可以使用 pyppeteer 为远程页面拍照:
import asyncio
import pyppeteer
async def main():
browser = await pyppeteer.launch()
page = await browser.newPage()
await page.goto('https://example.com/')
await page.screenshot({'path': './example.png'})
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
goto
您也可以直接将带有数据 url 的内容放入调用中:
import asyncio
import pyppeteer
import base64
async def main():
browser = await pyppeteer.launch()
page = await browser.newPage()
await page.goto('data:text/html,<table><tr><td>Some Cell</td><td>Some Other cell</td></tr></table>')
await page.screenshot({'path': './screenshot.png'})
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
由此生成的图片如下所示:
当然,你需要pyppeteer
在你的虚拟环境中安装它:
$ python -m pip install pyppeteer
与上面相同,但在此处写入 Jupyter Notebook:https ://gist.github.com/tiberiucorbu/6726e27a736ba7b07e3d0973e905e4ff
推荐阅读
- django - Django 模型:多对多或一对多
- sql - 选择查询语句中的自动递增字段
- wso2 - 所有五个 WSO2 API-M 组件上的 wso2“完整且相同”master-datasources.xml
- javascript - 如何在 Vue.js 中获取选择选项
- awk - 使用 awk 转置数据表的列
- shell - 我可以使用 dwdiff 和 diff3 获得三路 *word* 差异吗?
- selenium-webdriver - 无法使用 RobotFramework 中的可见文本从下拉列表中选择
- asp.net-mvc - 从 Visual Studio 发布到 Azure 时出现错误 10054
- c# - 我不能在 xamarin 中设置多个亲戚
- tcp - 是什么阻止了网络连接?无法在客户端-服务器 WebSphere 之间进行 EJB 查找