gpt4 book ai didi

python - 使用BeautifulSoup和Python在YouTube上查找链接

转载 作者:行者123 更新时间:2023-12-03 06:06:38 25 4
gpt4 key购买 nike

我正在使用Beautiful Soup在YouTube上进行网页抓取。
我的目标是从YouTube搜索页面中找到所有视频链接:

response = urllib.request.urlopen("https://www.youtube.com/results?search_query=stfu")
soup = BeautifulSoup(response, "html.parser")
我正在搜索此元素:
<a id="video-title" class="yt-simple-endpoint style-scope 
ytd-video-renderer" title="PINK GUY - STFU"
href="/watch?v=OLpeX4RRo28" ...
我搜索所有的“a”标签元素,但只得到一些:
for a in soup.findAll('a'):
print(a)
结果链接似乎来自“帮助”部分或类似内容,而不是正文:
    <a href="https://www.youtube.com/about/" slot="guide-links-primary" style="display: none;">Información</a>
<a href="https://www.youtube.com/about/press/" slot="guide-links-primary" style="display: none;">Prensa</a>
<a href="https://www.youtube.com/about/copyright/" slot="guide-links-primary" style="display: none;">Derechos de autor</a>
<a href="/t/contact_us" slot="guide-links-primary" style="display: none;">Contacto</a>
<a href="https://www.youtube.com/creators/" slot="guide-links-primary" style="display: none;">Creadores</a>
当我打印所有汤对象以检查响应时,我注意到视频信息应为空的地方:
<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
这是我的链接应该存在的地方,但里面什么也没有。
感谢您的帮助!

最佳答案

那是因为您正在发出HTTP请求,而youtube使用JavaScript渲染视频数据。为了能够解析出JS内容,您必须使用支持发出请求然后使用JS呈现的库。

关于python - 使用BeautifulSoup和Python在YouTube上查找链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62934148/

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