Текст Python для поиска видео Youtube Исходный код - PullRequest
0 голосов
/ 03 марта 2019

Python Noob здесь,

Этот код печатает и открывает в youtube все URL.

Я просто хочу, чтобы он открывал самый первый найденный 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 голосов
/ 04 марта 2019

На основе документов 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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...