【发布时间】:2019-09-23 08:43:28
【问题描述】:
我正在使用下面提供的代码创建一个列表,其中包含公共 YouTube 播放列表中的视频标题。它适用于包含少于 100 个视频的播放列表。对于包含超过 100 个视频的播放列表,播放列表中前 100 个视频的标题将被添加到列表中。我认为这种行为背后的原因是因为当我们在浏览器中加载相同的页面时,会加载前 100 个视频。向下滚动页面时会加载剩余的视频。有没有办法从播放列表中获取所有视频的标题?
from bs4 import BeautifulSoup as bs
import requests
url = "https://www.youtube.com/playlist?list=PLRdD1c6QbAqJn0606RlOR6T3yUqFWKwmX"
r = requests.get(url)
soup = bs(r.text,'html.parser')
res = soup.find_all('tr',{'class':'pl-video yt-uix-tile'})
titles = []
for video in res:
titles.append(video.get('data-title'))
【问题讨论】:
-
我不知道你的真正目标是什么,但如果只是为了下载完整的播放列表,你知道基于 python 的工具/实用程序
youtube-dl吗?它可以下载单个视频或播放列表。它具有随机下载的选项,因此您不会以数据猪的身份出现在 youtube.. HTH 中。祝你好运。 -
我想通过在每个视频文件前添加一个数字(播放列表中的序列号)来重命名文件。我已经下载了视频。不管怎样,谢谢你告诉我
youtube-dl。我不知道。
标签: python python-3.x web-scraping youtube