[英]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.