javascript - 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
}
它应该是这样的:
解决方案
推荐阅读
- javascript - Node.js 是 JavaScript 运行时环境还是 EcmaScript 环境?
- python - 在 sklearn 中绘制类权重的验证曲线
- jasper-reports - 基于变量对 JasperReport 进行分组
- c# - 远程调试器说对象为空,但不是吗?
- node.js - 异步编程中的循环
- vue.js - 将 vue js 与现有应用程序一起使用
- java - 大猩猩和波兰人会面点算法 - 无法找出完美的解决方案和失败的测试用例
- scala - IntelliJ - 非例外格式
- r - 为在另一列中具有特定字符的组的所有行设置子集
- c++ - 哈希表 C++ 的链表数组