【发布时间】:2013-04-07 01:04:56
【问题描述】:
我有一个包含各种 html 标签的 html 文件。这个 html 里面还有一堆表格。我正在使用 python 处理这个文件。当它由浏览器(最好是chrome或firefox)呈现时,我如何找出大小(长x宽,以像素为单位)?
当您在浏览器上执行“检查元素”时,我实际上是在寻找信息,并且您能够看到各种元素的大小。我想在我的 python 代码中访问这个大小。
我正在使用 lxml 来解析我的 html,如果需要可以使用 selenium。
编辑:添加了#node.js,因为我可以用它在 shell 脚本中吐出所有表的大小,我可以在 python 中抓取它。
【问题讨论】:
-
这取决于浏览器,可能是平台,视口大小......例如使用的字体渲染将影响文本字符串的前进,从而可能影响表格的宽度。您几乎必须在浏览器中实际呈现页面。如果你使用 Selenium,你不能直接用它打开页面并执行 Javascript 来确定大小吗?
-
@millimoose 是的,为了解决这些问题,我提到过我可以使用任何浏览器,但首选 chrome/firefox。我还说我想在我的 python 代码中访问大小(我知道我可以使用 javascript 获取大小)
-
鉴于没有浏览器实际上支持 python 脚本,并且您必须使用真正的浏览器(通过例如 Selenium)才能获得合理的结果,这些要求是矛盾的。如果你可以从 Python 驱动 Selenium,你也应该能够告诉底层浏览器为你运行一些 JS 并将结果返回给调用 Python 代码。
-
node.js没有任何渲染代码,所以这可能对您没有帮助。它只是一个 JavaScript 引擎。 -
如果你可以调用 shell 脚本,我会使用 PhantomJS。