python-3.x - 使用Python文本搜索YouTube视频源代码

标签 python-3.x url youtube

Python Noob在这里,

此代码的作用是打印并在youtube中打开所有网址。

我只希望它打开找到的第一个URL,而不是全部打开。

import urllib.request

from bs4 import BeautifulSoup

import webbrowser

textToSearch = 'Hello World'
query = urllib.parse.quote(textToSearch)
url = "https://www.youtube.com/results?search_query=" + query
response = urllib.request.urlopen(url)
html = response.read()
soup = BeautifulSoup(html, 'html.parser')
for vid in soup.findAll(attrs={'class':'yt-uix-tile-link'}):
    print('https://www.youtube.com' + vid['href'])
    url = ('https://www.youtube.com/' + vid['href'])
    webbrowser.open(url)
    print('Done!')

我想到了樟宜线
soup.findAll


soup.find

但它不起作用:
TypeError: string indices must be integers

而且我不知道该怎么办,这一定是简单的事情,而且我也不了解,所以如果您能帮助我,我将不胜感激

最佳答案

基于BeautifulSoup的文档

https://www.crummy.com/software/BeautifulSoup/bs4/doc/

只需添加
for vid in soup.findAll(attrs={'class':'yt-uix-tile-link'} ,限制= 1):

因此您将返回第一个。
查找不起作用,我认为是因为使用这些参数,vid变成了字符串,而在python中您无法执行

vid='whatever'
print vid['href']

关于python-3.x - 使用Python文本搜索YouTube视频源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54973526/

相关文章:

python - 交互式替换 - re.sub() with pos?

python - 如何使用 Python 从 telnet 响应中读取一行?

javascript - 从 iFrame 内部更新 URL

java - 在不忘记分隔符的情况下安全连接 URL 的正确方法是什么?

url - Nginx merge_slashes 重定向

python - 从非唯一的项目列表中获取独特的组合,更快吗?

python - 从单词列表中计算元音并将数字作为列表返回

youtube - 使用Youtube API代替Youtube抓取工具

java - Youtube HTML5 视频在 Android 中停止运行

YouTube 搜索 API 始终消耗 100 个单位