jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
jssoup 是一款JavaScript 的HTML解析器
一、jssoup
import:
//react-native
import JSSoup from 'jssoup';
// nodejs
var JSSoup = require('jssoup').default;
构造JSSoup函数
var soup = new JSSoup('<html><head>hello</head></html>');
// 默认情况下,仅包含空格的文本元素将被忽略。要禁用此功能,请将JSSoup的第二个参数设置为false。此参数为“ ignoreWhitespace”,并将传递给htmlparser。
var soup = new JSSoup(' <html> <head> hello </ head> </ html> ',false );
Name
var soup = new JSSoup('<html><head>hello</head></html>');
var tag = soup.find('head');
tag.name
// 'head'
tag.name = 'span'
console.log(tag)
//<span>hello</span>
Attributes
var soup = new JSSoup('<tag id="hi" class="banner">hello</tag>');
var tag = soup.nextElement;
tag.attrs
// {id: 'hi', class: 'banner'}
tag.attrs.id = 'test';
console.log(tag)
// <tag id="test" class="banner">hello</tag>
Navigation
.contents
var data = `
<div>
<a>1</a>
<b>2</b>
<c>3</c>
</div>
`
var soup = new JSSoup(data);
var div = soup.nextElement;
div.contents
// [<a>1</a>, <b>2</b>, <c>3</c>]
Search
.findAll()
var data = `
<div>
<div class="h1"></div>
<a>hello</a>
</div>
`
var soup = new JSSoup(data);
soup.findAll('a')
// [<a>hello</a>]
soup.findAll('div', 'h1')
// [<div class="h1"></div>]
.find()
var data = `
<div>
<p> hello </p>
<p> world </p>
</div>
`
var soup = new JSSoup(data);
soup.find('p')
// <p> hello </p>
更多请查看来源链接:www.npmjs.com/package/jss…
二、jsdom
jsdom是与Node.js一起使用的许多Web标准(特别是WHATWG DOM和HTML标准)的纯JavaScript实现。通常,该项目的目标是模拟Web浏览器的子集,从而足以用于测试和抓取实际的Web应用程序。
import
const jsdom = require (“ jsdom ”) ;
const { JSDOM } = jsdom ;
要使用jsdom,您将主要使用JSDOM构造函数,该构造函数是jsdom主模块的命名导出。向构造函数传递一个字符串。您将获得一个JSDOM对象,该对象具有许多有用的属性,尤其是window:
构造JSDOM函数
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
console.log(dom.window.document.querySelector("p").textContent); // "Hello world"
更多请查看来源链接:www.npmjs.com/package/jsd…