JSDom替代与全面Sizzle支持?

对于一些范围,我有一个在CloudFoundry上运行的应用程序。 由于在这里讨论的Contextify问题,我无法使用jsdom来做到这一点。

为了解决这个问题,我开始用Cheerioreplacejsdom,但是现在我已经意识到它并不完全支持我需要用来处理被抓取的数据的Sizzleselect器。

经过一番调查,我开始觉得自己碰到了一堵砖墙 – 还有另外一个解决这个问题的方法吗?

谢谢!

抱歉在这个延迟。 现在,您可以在Cloudfoundry上成功安装JSDOM,但似乎有些function不可用。 创build一个浏览器窗口,例如使用jQuery是不可能的。 但是,您可以创build一个jsdom文档。

给出下面的例子;

var http = require('http'); var util = require('util'); var jsdom = require("jsdom"); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.write("JSDom object;"); createDocAndQuery(res); res.write("\nNumber of node.js releases = "); getLinkCount(res); }).listen(3000); function createDocAndQuery(response) { var doc = jsdom.jsdom("<html><body></body></html>", jsdom.level(1, "core")); response.write(util.inspect(doc)); } function getLinkCount(response) { jsdom.env( "http://nodejs.org/dist/", ["http://code.jquery.com/jquery.js"], function (errors, window) { response.end ("" + window.$("a").length) } ); } 

第一部分在CloudFoundry.com上工作,第二部分在创build窗口对象时失败。