Line 7, IndexError: list index out of range
Line 7, IndexError: list index out of range
请帮我解决这个问题,这是我已经尝试过的代码。
非常感谢您的帮助。
import urllib.request
import re
search_keyword="ill%20wiat"
html = urllib.request.urlopen("https://www.youtube.com/results?search_query=" + search_keyword)
video_ids = re.findall(r"watch?v=(\S{11})", html.read().decode())
print("https://www.youtube.com/watch?v=" + video_ids[0])
urlib 不会给你数据
使用
import requests
html=requests.get('https://www.youtube.com/results?search_query='+search_keyword)
text=html.text
文本包含所有 html 数据,因此从文本搜索
首先检查您尝试解析的页面。你写道:
r"watch?v=(\S{11})"
还记得吗?这里的 char 将被解析为 REGEX 运算符而不是你想要的字符串,
所以首先你需要这样写:
/watch[?]v=(\S{11})
因此您的正则表达式将被正确解析
第二:打印列表以查看获得的内容并使用 FOR 循环而不是直接访问索引 [0].
通过列表进行迭代的好习惯
在你的情况下,你得到这个错误只是因为你的 id 列表是空的。
下一个代码对我有用
import urllib.request
import re
search_keyword="ill%20wiat"
url="https://www.youtube.com/results?search_query="+search_keyword
with urllib.request.urlopen(url) as response:
video_ids = re.findall("/watch[?]v=(\S{11})", response.read().decode())
for video in video_ids:
print("https://www.youtube.com/watch?v=" + video)
P.S 不要用 try/except 包装您的代码以捕获此类抛出的错误
请帮我解决这个问题,这是我已经尝试过的代码。 非常感谢您的帮助。
import urllib.request
import re
search_keyword="ill%20wiat"
html = urllib.request.urlopen("https://www.youtube.com/results?search_query=" + search_keyword)
video_ids = re.findall(r"watch?v=(\S{11})", html.read().decode())
print("https://www.youtube.com/watch?v=" + video_ids[0])
urlib 不会给你数据 使用
import requests
html=requests.get('https://www.youtube.com/results?search_query='+search_keyword)
text=html.text
文本包含所有 html 数据,因此从文本搜索
首先检查您尝试解析的页面。你写道:
r"watch?v=(\S{11})"
还记得吗?这里的 char 将被解析为 REGEX 运算符而不是你想要的字符串, 所以首先你需要这样写:
/watch[?]v=(\S{11})
因此您的正则表达式将被正确解析
第二:打印列表以查看获得的内容并使用 FOR 循环而不是直接访问索引 [0].
通过列表进行迭代的好习惯
在你的情况下,你得到这个错误只是因为你的 id 列表是空的。
下一个代码对我有用
import urllib.request
import re
search_keyword="ill%20wiat"
url="https://www.youtube.com/results?search_query="+search_keyword
with urllib.request.urlopen(url) as response:
video_ids = re.findall("/watch[?]v=(\S{11})", response.read().decode())
for video in video_ids:
print("https://www.youtube.com/watch?v=" + video)
P.S 不要用 try/except 包装您的代码以捕获此类抛出的错误