从YouTube播放列表中将曲目链接与美丽汤

问题描述 投票:0回答:1

我正在尝试从播放列表中删除曲目的所有链接。

这是我的代码

from selenium import webdriver 
from time import sleep
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re

playlist = 'minimal_house'

url = 'https://www.youtube.com/channel/UCt2GxiTBN_RiE-cbP0cmk5Q/playlists'
html = urlopen(url)
soup = BeautifulSoup(html , 'html.parser')
tracks = soup.find(title = playlist).get('href')

print(tracks)

url = url + tracks
print(url)

html = urlopen(url)

soup = BeautifulSoup(html, 'html.parser')

links = soup.find_all('a',attrs={'class':'yt-simple-endpoint style-scope ytd-playlist-panel-video-renderer'})

print(links)

我无法按类名也不能废弃'a'或ID。

example of one track from playlist

python beautifulsoup
1个回答
0
投票

这是适合我的混乱代码:

from selenium import webdriver
from time import sleep
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re

playlist = 'minimal_house'

url = 'https://www.youtube.com/channel/UCt2GxiTBN_RiE-cbP0cmk5Q/playlists'
html = urlopen(url)
soup = BeautifulSoup(html, 'html.parser')
tracks = soup.find('a', attrs={'title': playlist}).get('href')

print(tracks)

url = 'https://www.youtube.com' + str(tracks)
print(url)

html = urlopen(url)

soup = BeautifulSoup(html, 'html.parser')

links = soup.find_all('a')
links = set([link.get('href') for link in links if link.get('href').count('watch')])

print(links)

由于类名称根据设备请求而更改,因此在这种情况下最好获取所有链接。并且您需要使用硒来向下滚动以获取所有列表。

© www.soinside.com 2019 - 2024. All rights reserved.