node.js - 使用 jsdom 解析 html 文件正文
问题描述
首先,我是 UI 方面的新手,所以在给出解决方案之前请记住这一点。我有一个在量角器规范文件中传递给 jsdom 的 url。它返回必须解析的响应。jsdom逻辑:
describe('angularjs homepage', function () {
it('open nho website', function () {
const { JSDOM } = require("jsdom");
window = (new JSDOM(``, { runScripts: 'dangerously', url: 'https://example.com/getSeleniumGrid.jsp?locale=US&browser=Firefox&fabric=corp&teamName=xyzTeam' })).window;
//Used so many permutations n combinations on windows object
const machinename=window.text();
console.log("hi:"+machinename);
});
});
我的 html 响应
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
example.com
</body>
</html>
我想要身体里面的东西。我怎么做?
解决方案
APInew JSDOM('<put html code at here>', options)
要求你传入预先知道的 HTML 代码,如果你想让 jsom 从给定的 url 获取 HTML 代码,你不能使用这个 API,但是使用JSDOM.fromURL(url, options)
describe('angularjs homepage', function () {
it('open nho website', function () {
var jsdom = require("jsdom");
var url = 'https://example.com/getSeleniumGrid.jsp?locale=US&browser=Firefox&fabric=corp&teamName=xyzTeam';
// if your network access behind proxy,
// please create a resourceLoader, and
// specify the resources in below options and pass the options
// into JSDOM.fromURL(url, options)
var resourceLoader = new jsdom.ResourceLoader({
proxy: "<your proxy address>",
strictSSL: false,
});
var options = {
resources: resourceLoader,
};
jsdom.JSDOM.fromURL(url, options)
.then(function(dom){
console.log(dom.window.document.querySelector('body').textContent.trim())
});
});
});
推荐阅读
- python - 如何从其他格式导出 sbml 文件,例如 graphml?
- sql - 你能帮我理解 INNER JOIN ON 的条款吗
- snowflake-cloud-data-platform - 无法通过 DBeaver 连接雪花数据库
- spring-boot - 基于证书的身份验证,客户端共享证书到服务器
- python - Django,如何在泛型视图的 form_valid 函数中创建对象实例(id)?
- mysql - 如何从 JSON 列中获取所有不同的属性名称?
- javascript - jQuery 切换单选按钮
- php - 如何(重新)组织这些数据 - Lumen/Laravel
- java - 正好 OR 的正则表达式包含
- error-handling - 范围的起始列太小。(第 50 行,文件“清除单元格”)