标签导航:

js爬虫数据如何进行清洗

JavaScript网页爬虫及数据清洗,通常包含以下步骤:

  1. 数据获取: 利用axios或node-fetch等HTTP库获取网页HTML内容。
  2. HTML解析: 使用cheerio库解析HTML,方便操作DOM元素,或直接使用浏览器内置的DOMParser。
  3. 数据提取: 通过CSS选择器或XPath表达式精准定位并提取目标数据。
  4. 数据清洗: 去除多余空格、换行符,转换数据类型(例如字符串转数字),处理缺失值或异常值等。
  5. 数据存储: 将清洗后的数据存储到数据库(例如MongoDB、SQLite)或导出为JSON、CSV等格式。

以下示例演示使用axios和cheerio爬取网页数据并进行清洗:

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

axios.get('https://example.com')
  .then(response => {
    const html = response.data;
    const $ = cheerio.load(html);

    const extractedData = [];
    $('.item').each((i, el) => { // 假设目标数据在.item类选择器下
      const title = $(el).find('h2.title').text().trim();
      let price = $(el).find('span.price').text().trim();
      price = parseFloat(price.replace(/[$,]/g, '')); // 清洗价格,去除'$'和','

      if (title && !isNaN(price)) { // 数据校验
        extractedData.push({ title, price });
      }
    });

    // 进一步清洗,例如过滤价格低于100的产品
    const cleanedData = extractedData.filter(item => item.price >= 100);

    console.log(cleanedData);
  })
  .catch(error => {
    console.error('数据获取失败:', error);
  });

此示例中,我们先获取网页数据,再用cheerio解析,提取标题和价格。 价格数据经过清洗,去除货币符号和逗号,并转换为数字。最后,过滤价格低于100的数据,输出清洗后的结果。 实际应用中,清洗步骤需根据具体网站结构和数据特点调整。 请注意,爬取数据时需遵守网站robots.txt规则,避免对网站造成负担。