繁体   English   中英

如何从身体中获取特定元素?

[英]How to get a certain element from a body?

我使用 node-fetch ,并以这种方式获取网站的正文:

import fetch from 'node-fetch';

(async () => {
    const response = await fetch('link');
    const body = await response.text().

    console.log(body);
})()

控制台显示整个页面的完整正文。 但我想得到一个特定类的特定元素。 如何更改代码以执行此操作?

您可以使用cheerio.js 它是 jQuery for node 的实现。

下面的代码选择一个h2并将其文本更改为Hello World

const cheerio = require('cheerio');
const $ = cheerio.load(body);

$('h2').text('Hello World!');

好吧,您已经获得了包含页面整个 html 的字符串。

现在您可以编写代码,从该字符串中提取您想要的部分。 您说您要提取具有特定类的元素。

正如moonwave99 所评论的,您可以使用cheerio或其他一些html 解析器来提取具有您所针对的类名的元素。

或者,如果你想避免使用外部包,你可以编写一个正则表达式匹配你想要从该 html 字符串中获取的 HTML 元素:

 let wholeHTML = `<html> <p>Paragraph 1</p> <p class="classIwant">Paragraph 2</p> <p>Paragraph 3</p> </html>`; let rx = /<p class="classIwant".*\/p>/gm; let matches = wholeHTML.match(rx); console.log(matches[0]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM