Python文字来搜索Youtube视频源代码

时间:2019-03-03 20:40:58

标签: 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

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

1 个答案:

答案 0 :(得分:0)

基于BeautifulSoup的文档

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

只需添加

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

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

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