HTML解析器

289 阅读1分钟

jsoup 是一款JavaHTML解析器,可直接解析某个URL地址HTML文本内容。它提供了一套非常省力的API,可通过DOMCSS以及类似于jQuery的操作方法来取出和操作数据。

jssoup 是一款JavaScriptHTML解析器

一、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 DOMHTML标准)的纯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…