我遵循了本网站上的本教程, 以了解如何根据给定的查询从 youtube 中提取第一个链接。我已将代码实现为如下函数:
import urllib.request
import re
def GetBestYoutubeLink(MusicRequest):
MusicSearchLink = MusicRequest.replace(" ","+")
MusicSearchLink = "https://www.youtube.com/results?search_query=" + MusicSearchLink
HTMLContent = urllib.request.urlopen(MusicSearchLink)
SearchResults = re.findall(r'href=\"\/watch\?v=(.{11})', HTMLContent.read().decode())
print(SearchResults)
BestLink = "http://www.youtube.com/embed/" + SearchResults[0]
return BestLink
查询将传递到函数的位置,它将打印第一个/最佳 url。然而,我从这个解决方案中面临的问题是大多数时候 SearchResults 数组在打印时是空的,因此我无法获得第一个 url。这不像查询是一个不常见的查询,因为我曾尝试过流行歌曲和视频来获取其链接,但它只是返回为空,但它有时会与最佳链接的正确输出一起工作。为了找到解决方案,我在打印 SearchResults 数组和定义 BestLink 变量之间给出了以下语句:
if SearchResults == []:
print(SearchResults)
MusicPlayer(MusicRequest)
如果 SearchResults 数组为空,则它会再次运行该函数。然而,它正在重新运行,有时会打印一个空列表 20 到 30 次,这根本没有效率。我想了解我的列表背后的问题可能是什么,大多数时候返回为空,但有时会填充,因此能够获得链接,我该如何解决这个问题?
我当前的 python 版本是 3.6,我在 macOS Catalina 上运行。
冉冉说
慕田峪7331174
随时随地看视频慕课网APP
相关分类