python - 只需 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])
```
解决方案
search_results = re.findall(r'href=\"\/watch\?v=(.{11})',
html_content.read().decode())
就像错误清楚地提到的那样,列表索引超出范围,即列表为空。re.findall
代码中上述行中的函数返回一个空列表。检查您的正则表达式。
推荐阅读
- flutter - 如何将 Stack 作为 CustomScrollView 的子项
- sql-server - 对每一行执行检查约束的所有情况
- python - 如何使用向导页面强制布局调整大小
- flutter - Flutter Sqlite Query Error 数据获取错误
- azure - 如何检查从 Azure Active Directory 收到的令牌?
- c# - 如何按 SessionID 过滤 SQL Trace?
- excel - 将电子邮件发送到单元格中的电子邮件地址(如果有)
- swift - Swift:如何以编程方式关闭 ViewController?
- html - 将表格行添加到行
- javascript - 仅 HTML/Javascript 3 个范围滑块,总和为 100,2 个单独的数学交互