【问题标题】:Simply python script to get youtube video not working只需 python 脚本即可使 youtube 视频无法正常工作
【发布时间】:2020-12-03 16:57:17
【问题描述】:

我正在尝试制作一个从搜索词中获取第一个 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])
    ```

【问题讨论】:

  • 尝试导入 urllib.request?
  • 对不起,我忘了更新这篇文章,我想通了,但是有一个新错误
  • 下次你应该格式化你的帖子代码以便于阅读
  • 欢迎来到 SO。你可以用```格式化你的帖子看起来更好
  • @Bigweld 在这里,更多关于formatting your code in SO的信息。

标签: python api youtube request urllib


【解决方案1】:
search_results = re.findall(r'href=\"\/watch\?v=(.{11})',
                            html_content.read().decode())

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

【讨论】:

    猜你喜欢
    • 2021-11-05
    • 2014-06-16
    • 2020-09-17
    • 2021-01-07
    • 2011-09-15
    • 2016-01-18
    • 2020-12-29
    • 2020-11-04
    • 2022-12-12
    相关资源
    最近更新 更多