如何使用python以编程方式测量HTML源代码中元素的大小?

Shu*_*uan 7 html python dom

我在python中进行网页布局分析.基本任务是以给定HTML源代码的方式编程测量元素的大小,以便我们可以获得网页语料库的内容/广告比率,广告块位置,广告块大小的统计数据.

一种显而易见的方法是使用width/height属性,但它们并不总是可用.此外,width: 50%需要在加载到DOM后计算.所以我想将HTML源代码加载到一个窗口大小的预定义浏览器中(比如机械化虽然我不确定窗口的大小是否可以设置)是一种很好的尝试方法,但机械化不支持返回元素大小无论如何.

在python中有没有通用的方法(没有宽度/高度属性),最好是用一些库?

谢谢!

Zyg*_*lis 3

我建议你看一下Ghost - 用 python 编写的 webkit web 客户端。它具有 JavaScript 支持,因此您可以轻松调用 JavaScript 函数并获取其返回值。示例显示如何找出谷歌文本框宽度:

>>> from ghost import Ghost
>>> ghost = Ghost()
>>> ghost.open('https://google.lt')
>>> width, resources = ghost.evaluate("document.getElementById('gbqfq').offsetWidth;")
>>> width
541.0  # google text box width 541px
Run Code Online (Sandbox Code Playgroud)