如果你可以调用 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 是否以及如何进行任何缓存,如果这样做,对同一站点的多个抓取重用相同的进程可能是有意义的。