cheerio实战
常用操作
cheerio 是一个类似于 jQuery 的库,它提供了一组简单而强大的 API 来解析和操作 HTML。以下是一些常用的 cheerio 用法示例,包括循环 DOM 元素:
- 加载 HTML:
const cheerio = require('cheerio'); const html = '<div><h1>Title</h1><p>Paragraph</p></div>'; 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('<li>New item</li>'); // 在 ul 元素中添加新的 li 元素 $('p').remove(); // 删除所有 p 元素 - 过滤 DOM 元素:
讯享网
const firstParagraph = $('p').first(); // 获取第一个 p 元素 const lastParagraph = $('p').last(); // 获取最后一个 p 元素 const hasClass = $('div').hasClass('container'); // 检查 div 元素是否有指定的类名
这只是 cheerio 的一些常用用法示例,您可以根据具体需求查阅 cheerio 的文档以了解更多功能和用法。希望这些示例对您有所帮助!如果您有任何其他问题,请随时提问。
动态html来源网络请求
上面 cheerio 是写死html,下面展示实战网络请求中。
使用axios
如果你想使用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。
使用http请求
如果你想将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。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/70107.html