爬取波点音乐歌单

536 阅读1分钟
const { log } = require('console');
const puppeteer = require('puppeteer');

(async () => {
  // 启动无头浏览器
  const browser = await puppeteer.launch({
    headless: false, // 设置为 false,启动有头模式
    devtools: true,  // 启用开发者工具
  });
 
  // 创建一个新的页面
  const page = await browser.newPage();

  // 导航到目标网页
  await page.goto('https://h5app.kuwo.cn/m/bodian/collection.html?uid=3781847&playlistId=4438796&source=5&ownerId=3781847');

  // 等待一段时间,确保页面中的数据加载完成
 await page.waitForSelector('.song_name', { timeout: 30000 });

  // 使用页面的 evaluate 方法在浏览器上下文中执行 JavaScript 代码
  const songs = await page.evaluate(() => {
    // 选择包含歌曲信息的元素,并遍历处理每个元素
    const songElements = document.querySelectorAll('.singer_info');
    const songList = [];
    songElements.forEach(element => {
      // 提取歌曲名和作者
      const songName = element.querySelector('.song_name')?.textContent;
      const artist = element.querySelector('.singer_name')?.innerHTML.trim();

      // 将歌曲信息存储到数组中
      songList.push({ songName, artist });
    });

    return songList;
  });

  // 关闭无头浏览器
  await browser.close();

  // 打印歌曲信息数组
  console.log(songs);
})();