如何在给定html文件的情况下确定html表的大小(以像素为单位)

时间:2013-04-15 01:25:36

标签: python node.js

我有一个html文件,其中包含各种html标签。这个html里面还有一堆表格。我正在使用python处理这个文件。如何通过浏览器(最好是chrome或firefox)呈现大小(长x宽像素)?

当您在浏览器上执行“检查元素”时,我基本上在寻找信息,您可以看到各种元素的大小。我想在我的python代码中访问这个大小。

我正在使用lxml来解析我的html,如果需要可以使用selenium。

编辑:添加了#node.js,我可以用它来吐出shell脚本中所有表的大小,我可以在python中抓取它。

2 个答案:

答案 0 :(得分:1)

您将要使用Selenium WebDriver在运行Python代码的计算机上安装的实际浏览器中打开HTML文件。

我不确定您是如何使用Selenium WebDriver API来查找渲染表的高度,但the value_of_css_property method可能会这样做。

答案 1 :(得分:0)

如果你可以调用shellscript,,你可以使用Node.js,我假设你也可以安装并使用PhantomJS,这是一个无头 WebKit端口。 (即,一个实际诚实的善良WebKit渲染器,它不需要窗口工作。)这将允许您使用Javascript和熟悉的Web库来操作文档。作为示例,以下内容将向您显示徽标元素朝向左上方Stack Overflow站点的宽度:

page = require('webpage').create(); // create a new "browser"

page.open('http://stackoverflow.com/', function() {
  // callback when loading completes
  var logoWidth = page.evaluate(function() {
    // This runs in the rendered page and uses the version of jQuery that SO loads.
    return $('#hlogo').width();
  });

  console.log(logoWidth); // prints 250, the same as Chrome.

  phantom.exit(); // for some reason you need to exit manually
});

PhantomJS的文档将告诉您更多关于它可以用它做什么以及如何做的事情。

然而,有一点需要注意的是,加载页面需要一段时间,因为它需要获取CSS和脚本,并且通常会执行浏览器所做的一切。我不确定PhantomJS是否以及如何进行任何缓存,如果确实如此,那么为同一站点的多次擦除重用相同的过程可能是有意义的。