首页 > 解决方案 > 只需 python 脚本即可使 youtube 视频无法正常工作

问题描述

我正在尝试制作一个从搜索词中获取第一个 yt 视频结果的脚本

import urllib.request
import urllib.parse
import re

query_string = urllib.parse.urlencode({"search_query" : input()})
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])

给出错误:

Exception has occurred: IndexError
list index out of range
  File "C:\Users\redacted\OneDrive\Desktop\Python\yttest.py", line 8, in <module>
    print("http://www.youtube.com/watch?v=" + search_results[0])
    ```

标签: pythonapiyoutuberequesturllib

解决方案


search_results = re.findall(r'href=\"\/watch\?v=(.{11})',
                            html_content.read().decode())

就像错误清楚地提到的那样,列表索引超出范围,即列表为空。re.findall代码中上述行中的函数返回一个空列表。检查您的正则表达式。


推荐阅读