首页 > 解决方案 > Web-Scraping:将 YTMusic 歌曲添加到播放列表

问题描述

如果我可以喜欢一首歌曲并将 YT Music 中的歌曲添加到播放列表,我正在为自己创建一个 Chrome 扩展程序。我决定使用网络抓取来做到这一点。

我的喜欢功能工作正常,但我在播放列表功能中遇到了问题:我可以选择正确的播放列表的弹出窗口没有出现,但菜单关闭。

编码:

async function addSongToPlaylist(name){
  // Click on Menu Button
  const dropdownMenus = document.getElementsByClassName("dropdown-trigger style-scope ytmusic-menu-renderer");
  const menuBtn = dropdownMenus[dropdownMenus.length-1];
  menuBtn.click();
  await new Promise(r => setTimeout(r, 500));

  // Search for Playlist Menu-Item and click it
  const menu = document.getElementsByClassName("style-scope ytmusic-menu-popup-renderer")[0];
  const playlistBtn = Array.prototype.filter.call(menu.children, (child) => child.textContent.includes("Playlist"))[0];
  playlistBtn.click();
  await new Promise(r => setTimeout(r, 500));

  // TODO: Click the correct playlist
}

它应该是这样的:

将歌曲添加到播放列表

标签: javascriptweb-scrapinggoogle-chrome-extension

解决方案


推荐阅读