cheerio实战案例

cheerio实战

常用操作

cheerio 是一个类似于 jQuery 的库,它提供了一组简单而强大的 API 来解析和操作 HTML。以下是一些常用的 cheerio 用法示例,包括循环 DOM 元素:

  1. 加载 HTML:

    const cheerio = require('cheerio');
    const html = '

    Title

    Paragraph

    '
    ; const $ = cheerio.load(html);
  2. 选择 DOM 元素:

    const title = $('h1').text(); // 获取 h1 元素的文本内容
    const paragraphs = $('p'); // 获取所有 p 元素
    
  3. 循环 DOM 元素:

    paragraphs.each((index, element) => {
      const text = $(element).text(); // 获取每个 p 元素的文本内容
      console.log(text);
    });
    
  4. 获取和设置属性:

    const link = $('a').attr('href'); // 获取链接的 href 属性值
    $('img').attr('src', 'new-image.jpg'); // 设置图片的 src 属性值
    
  5. 操作 DOM 结构:

    $('ul').append('
  6. New item
  7. '
    ); // 在 ul 元素中添加新的 li 元素 $('p').remove(); // 删除所有 p 元素
  8. 过滤 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);
  });

在这个示例中,我们首先引入了cheerioaxios库。然后,我们定义了一个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);
});

在这个示例中,我们首先引入了cheeriohttp模块。然后,我们定义了一个url变量,其中包含了你要请求的URL地址。

接下来,我们使用http.get()方法发送GET请求,并传入URL和一个回调函数。在回调函数中,我们使用data变量来存储响应的数据。

response.on('end')事件中,我们使用cheerio.load()方法将响应的HTML内容加载到$对象中。然后,我们可以使用$对象来处理HTML内容,例如提取标题和段落等信息。

最后,我们将标题和段落打印到控制台中。你可以根据实际需求,对响应的HTML内容进行其他操作。请确保替换url为你要请求的实际URL。

你可能感兴趣的:(node.js,cheerio,服务端dom解析,爬虫)