gpt4 book ai didi

python - 如何抓取 youtube 视频以获取比一页更多的视频?

转载 作者:行者123 更新时间:2023-12-03 05:53:42 24 4
gpt4 key购买 nike

我想抓取 youtube 以根据我的搜索查询收集有关视频的描述。我正在使用 BeautifulSoup4 这样做。我已成功找到视频 URL。
我面临的问题是我想为每个类别收集至少 2000 个视频链接。但根据一项要求,YouTube 只显示 20 个视频。如何收集更多视频的网址?

from bs4 import BeautifulSoup as bs
import requests

BASE_URL = "https://www.youtube.com"
BASE_SEARCH_URL = "https://www.youtube.com/results?search_query="

query = "travel+blogs"

r = requests.get(BASE_SEARCH_URL + query)
page = r.text
soup = bs(page, 'html.parser')
vids = soup.findAll('a', attrs={'class': 'yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-sessionlink spf-link '})

video_urls = [BASE_URL + vid['href'] for vid in vids]

print(video_urls)

我面临的问题是我想为每个类别收集至少 2000 个视频链接。但根据一项要求,YouTube 只显示 20 个视频。如何收集更多视频的网址?

最佳答案

尝试使用 Selenium 与 BeautifulSoup 一起。
Selenium 允许您通过导入滚动到页面底部:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

并使用 driver.find_element_by_tag_name('html').send_keys(Keys.END)滚动到底部( driver 是 Selenium Webdriver 对象)

对于您的用例,您可以循环滚动到底部大约 100 次,每次填充 20 个结果,并且您可以在使用 driver.page_source 获取原始 HTML 后使用上面的抓取代码

不过,我建议您使用 YouTube 数据 API。它很容易上手并且是免费的。它会运行得更快、更有效。
https://developers.google.com/youtube/v3/

关于python - 如何抓取 youtube 视频以获取比一页更多的视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55851197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com