问题标签 [jsdom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
595 浏览

node.js - jsdom:如何处理页面上的脚本

页面无法获取jsdome执行脚本:

我在页面上有一个脚本可以更改文档标题

难道我做错了什么?

0 投票
3 回答
3405 浏览

node.js - jsdom.env:本地 jquery 脚本不起作用

它不起作用 脚本是“http://server.local:3000/jquery/jquery.min.js”(可使用浏览器使用) jquery.min.js 是 jquery-1.5.min.js 的副本

如果脚本是 'http://code.jquery.com/jquery-1.5.min.js' - 一切正常。

怎么了?

0 投票
1 回答
664 浏览

php - 如何使用 Node.js HTML 解析器处理 PHP 文件?

我正在使用 node.js 对 HTML 文件进行一些修改。我使用 jsdom 作为 HTML 解析器(因为解析比正则表达式更可靠),使用 jQuery 进行我需要的修改,然后将输出传递给文件。很简单。

但是,尝试处理 PHP 文件时会出现问题。解析器输出自然会丢弃所有 PHP 代码(因为它不是 HTML,也不是 doctype,因为它不是内容),所以我不能再直接使用输出了。

任何想法如何解析和修改 HTML 部分并仍然保留 PHP 代码?

0 投票
1 回答
158 浏览

jquery - jsdom:混合大小写解析

我正在使用带有 jsdom 的 jQuery(0.2.10)。出于某种原因,node.exe (0.6.5.1) 在处理诸如此类的 HTML 时永远不会返回:

解析代码为:

对标签名称使用相同的大小写按预期工作(即 node.exe 返回)。但由于我无法控制我正在解析的 HTML,我想知道是否有办法解决这个问题。此外,body.toLowerCase()有助于终止 node.exe,但这不是一个可行的解决方案,因为我需要保留文本节点的原始大小写。

谢谢你。

0 投票
2 回答
1243 浏览

javascript - 在 JSDOM 中加载 URL 时出现“访问被拒绝”

我正在尝试使用该jsdom.env功能抓取页面的一些信息。但是,env()回调中返回的页面是关于如何拒绝访问服务器而不是我希望在浏览器中加载相同 URL 时看到的内容。

因此,浏览器加载页面的方式与 jsdom 加载页面的方式似乎有所不同。这是可以在jsdom模块中配置的东西吗?

编辑:

示例网址:http://www.bestbuy.com/site/HP+-+20%22+Widescreen+Flat-Panel+LCD+Monitor/1422209.p?id=1218257754431&skuId=1422209

更新:

问题是 jsdom 没有指定用户代理 http 标头。看看下面的详细答案

0 投票
2 回答
1751 浏览

javascript - getBBox() 文本元素上的缺失值

我有一个 Node.js 项目,它使用 jsdom 和 Raphael Js 在我的服务器上生成 SVG 标记,一切都很顺利,直到我在 Raphael 文本元素上调用 getBBox() 时开始出现缺失值。

然而 ...

造成这种情况的原因是什么,更重要的是有解决办法吗?

0 投票
2 回答
381 浏览

javascript - 如何让 jsdom 资源效率更高

我正在使用来自getratings github 项目的基于 node.js 和 jsdom 的getratings.js脚本从NewEgg、BestBuy 等网站上抓取用户评论。

该脚本托管在 EC2 微实例上。在将超过 12 个同时请求发送到服务之前,它可以正常工作。除此之外,主机上的资源和内存利用率非常高,并且对客户端的响应需要很长时间。

我试图处理内存泄漏。一旦完成处理请求,内存使用量最终会下降,但使用峰值非常高。

我想知道我是否可以做一些事情来使通过 jsdom 处理 html 在资源利用方面更有效。

0 投票
2 回答
5605 浏览

node.js - jsdom表单提交?

我正在尝试使用 Node.js 包请求和 jsdom 来抓取网页,我想知道如何提交表单并获得他们的回复。我不确定 jsdom 或其他模块是否可以做到这一点,但我知道请求支持 cookie。

以下代码演示了我如何使用 jsdom(以及 request 和 jQuery)来检索和解析网页(在本例中为 Wikipedia 主页)。(请注意,此代码改编自本教程http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs中的 jquery-request.js 代码)

上面的代码从 Wikipedia 的搜索表单中打印 HTML,然后是“Wood”,这是我设置 searchInput 字段要包含的值。当然,这里的 click() 方法实际上并没有做任何事情,因为 jQuery 不是在浏览器中运行的;我什至不知道 jsdom 是否支持任何类型的事件处理。

是否有任何模块可以帮助我以这种方式或以类似的非 jQuery 方式与网页交互?这可以在jsdom中完成吗?

提前致谢!

0 投票
1 回答
1483 浏览

jquery - 在nodejs上使用jsdom和jquery解析html

如何使用nodejs获取url图像的代码?例如:这是我的代码:

请告诉我先生。

0 投票
1 回答
1326 浏览

node.js - NPM 和 jsdom 错误加载

进入 node.js 的世界。基本上刚刚起步。我已经安装了节点并让一些工作正常进行。据我了解,我需要安装模块 jsdom 才能使 jQuery 正常工作。所以我下载并编译了 NPM,当我运行 npm install jsdom 命令时,我得到了很多错误。这是打印输出:

它显然没有用。

  1. 我需要这个包来执行 jQuery 吗?
  2. 我在这里做错了什么?

谢谢。