【发布时间】:2019-09-14 23:58:33
【问题描述】:
我想抓取 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 个视频。如何收集更多视频的网址?
【问题讨论】:
-
您应该分析如何在请求中加载更多视频,或者在 url 中使用一些参数进行更多请求。使用开发工具分析 youtube 网络请求
-
我能够进入这部分。但我现在面临的问题是,经过一定数量的请求后,youtube 会返回验证码页面而不是搜索结果。
标签: python beautifulsoup youtube