gpt4 book ai didi

node.js - 具有完整 Sizzle 支持的 JSDom 替代方案?

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:45 25 4
gpt4 key购买 nike

对于一点范围,我有一个在 cloudfoundry 上运行的抓取应用程序。由于讨论的Contextify问题here ,我无法使用 jsdom 来执行此操作。

为了解决这个问题,我开始将 jsdom 替换为 Cheerio ,但是我现在意识到它并不完全支持我需要用来处理抓取的数据的 Sizzle 选择器。

经过一番研究后,我开始认为我已经碰壁了 - 还有其他方法可以解决这个问题吗?

谢谢!

最佳答案

抱歉延迟了。您现在可以在 Cloudfoundry 上成功安装 JSDOM,但是,似乎某些功能不可用。创建浏览器窗口(例如使用 jQuery)是不可能的。但是,您可以创建一个 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,但第二部分在创建窗口对象时失败。

关于node.js - 具有完整 Sizzle 支持的 JSDom 替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12761475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com