query_string = urllib.parse.urlencode({"search_query" : "example"()})
html_content_request = urllib.request.Request(
"http://www.youtube.com/results?" + query_string,
headers=headers
)
html_content_open = urllib.request.urlopen(html_content_request)
search_results = re.findall(r'href=\"\/watch\?v=(.{11})', html_content_open.read().decode())
videoURL = "http://www.youtube.com/watch?v=" + search_results[0]
Я пытаюсь получить ссылку на видео YouTube на основе этого поискового «примера», например, это должно вернуть URL первого видео этого поиска. Оригинальный код:
query_string = urllib.parse.urlencode({"search_query" : "example"()})
html_content = urllib.request.urlopen("http://www.youtube.com/results?" + query_string)
search_results = re.findall(r'href=\"\/watch\?v=(.{11})', html_content.read().decode())
print("http://www.youtube.com/watch?v=" + search_results[0])
работает на некоторых веб-сайтах, но на YouTube выдает ошибку 403, поэтому у меня есть этот модифицированный код там. Мой код, первый бросает IndexError, traceback:
Traceback (most recent call last):
File "C:\Users\Sakari\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in
__call__
return self.func(*args)
File "c:/Users/Sakari/Desktop/Python projektit/pyGTARADIO.py", line 96, in <lambda>
lataus_button = tk.Button(radioFrame, text = "Lataa musiikkikansioon", command = lambda: ytLataus())
File "c:/Users/Sakari/Desktop/Python projektit/pyGTARADIO.py", line 51, in ytLataus
ytSearch()
File "c:/Users/Sakari/Desktop/Python projektit/pyGTARADIO.py", line 44, in ytSearch
videoURL = "http://www.youtube.com/watch?v=" + search_results[0]
IndexError: list index out of range