cheerio
是一个类似于 jQuery 的库,它提供了一组简单而强大的 API 来解析和操作 HTML。以下是一些常用的 cheerio
用法示例,包括循环 DOM 元素:
加载 HTML:
const cheerio = require('cheerio');
const html = 'Title
Paragraph
';
const $ = cheerio.load(html);
选择 DOM 元素:
const title = $('h1').text(); // 获取 h1 元素的文本内容
const paragraphs = $('p'); // 获取所有 p 元素
循环 DOM 元素:
paragraphs.each((index, element) => {
const text = $(element).text(); // 获取每个 p 元素的文本内容
console.log(text);
});
获取和设置属性:
const link = $('a').attr('href'); // 获取链接的 href 属性值
$('img').attr('src', 'new-image.jpg'); // 设置图片的 src 属性值
操作 DOM 结构:
$('ul').append('- New item
'); // 在 ul 元素中添加新的 li 元素
$('p').remove(); // 删除所有 p 元素
过滤 DOM 元素:
const firstParagraph = $('p').first(); // 获取第一个 p 元素
const lastParagraph = $('p').last(); // 获取最后一个 p 元素
const hasClass = $('div').hasClass('container'); // 检查 div 元素是否有指定的类名
这只是 cheerio
的一些常用用法示例,您可以根据具体需求查阅 cheerio
的文档以了解更多功能和用法。希望这些示例对您有所帮助!如果您有任何其他问题,请随时提问。
上面 cheerio 是写死html,下面展示实战网络请求中。
如果你想使用axios
库来发送HTTP请求并获取响应,可以按照以下示例代码进行操作:
const cheerio = require('cheerio');
const axios = require('axios');
const url = 'http://example.com'; // 替换为你要请求的URL
axios.get(url)
.then((response) => {
const html = response.data;
const $ = cheerio.load(html);
// 在这里使用$来处理响应的HTML内容
const title = $('h1').text();
const paragraph = $('p').text();
console.log('标题:', title);
console.log('段落:', paragraph);
})
.catch((error) => {
console.error('请求出错:', error);
});
在这个示例中,我们首先引入了cheerio
和axios
库。然后,我们定义了一个url
变量,其中包含了你要请求的URL地址。
接下来,我们使用axios.get()
方法发送GET请求,并传入URL。然后,我们使用.then()
方法来处理成功的响应,并在回调函数中获取响应的HTML内容。
在回调函数中,我们使用cheerio.load()
方法将响应的HTML内容加载到$
对象中。然后,我们可以使用$
对象来处理HTML内容,例如提取标题和段落等信息。
最后,我们将标题和段落打印到控制台中。你可以根据实际需求,对响应的HTML内容进行其他操作。请确保替换url
为你要请求的实际URL。
如果你想将html
来源替换为响应,你可以使用Node.js的http
模块来发送HTTP请求并获取响应。以下是一个示例代码:
const cheerio = require('cheerio');
const http = require('http');
const url = 'http://example.com'; // 替换为你要请求的URL
http.get(url, (response) => {
let data = '';
response.on('data', (chunk) => {
data += chunk;
});
response.on('end', () => {
const $ = cheerio.load(data);
// 在这里使用$来处理响应的HTML内容
const title = $('h1').text();
const paragraph = $('p').text();
console.log('标题:', title);
console.log('段落:', paragraph);
});
}).on('error', (error) => {
console.error('请求出错:', error);
});
在这个示例中,我们首先引入了cheerio
和http
模块。然后,我们定义了一个url
变量,其中包含了你要请求的URL地址。
接下来,我们使用http.get()
方法发送GET请求,并传入URL和一个回调函数。在回调函数中,我们使用data
变量来存储响应的数据。
在response.on('end')
事件中,我们使用cheerio.load()
方法将响应的HTML内容加载到$
对象中。然后,我们可以使用$
对象来处理HTML内容,例如提取标题和段落等信息。
最后,我们将标题和段落打印到控制台中。你可以根据实际需求,对响应的HTML内容进行其他操作。请确保替换url
为你要请求的实际URL。