Python:从视频中获取 youtube 作者图片 link
Python: getting the youtube author image from the video link
你好,所以我尝试使用 urllib3 模块从给定视频 link 中删除作者图像 url,但由于 [=25= 的长度不同] 它会导致加入其他属性,如宽度和高度
https://yt3.ggpht.com/ytc/AKedOLS-Bwwebj7zfYDDo43sYPxD8LN7q4Lq4EvqfyoDbw=s400-c-k-c0x00ffffff-no-rj","width":400,"height"
而不是我想要的作者图片 link :
https://yt3.ggpht.com/ytc/AKedOLS-Bwwebj7zfYDDo43sYPxD8LN7q4Lq4EvqfyoDbw=s400-c-k-c0x00ffffff-no-rj
我编写的代码
import re
import urllib.request
def get_author(uri):
html = urllib.request.urlopen(uri)
author_image = re.findall(r'yt3.ggpht.com/(\S{99})', html.read().decode())
return f"https://yt3.ggpht.com/{author_image[1]}"
抱歉我的英语不好,提前致谢=)
如果您不确定匹配的长度,请不要硬编码要匹配的字符数。 {99}
不适用于任意字符串。
此外,您想要匹配 mark-up 文本中的字符串,您需要确保只匹配到定界字符。如果它是一个 "
字符,则匹配直到该字符。
此外,正则表达式中的点是特殊的,您需要将它们转义以匹配文字点。
此外,findall
用于匹配所有匹配项,您可以使用re.search
获取第一个以释放一些资源。
所以,修复可能看起来像
def get_author(uri):
html = urllib.request.urlopen(uri)
author_image = re.search(r'yt3\.ggpht\.com/[^"]+', html.read().decode())
if author_image:
return f"https://{author_image.group()}"
return None # you will need to handle this condition in your later code
这里,author_image
是正则表达式匹配数据对象,如果匹配,需要在匹配值(author_image.group()
)前加上https://
和return值,否则,您需要 return 一些默认值以便稍后在代码中检查(此处,None
)。
你好,所以我尝试使用 urllib3 模块从给定视频 link 中删除作者图像 url,但由于 [=25= 的长度不同] 它会导致加入其他属性,如宽度和高度
https://yt3.ggpht.com/ytc/AKedOLS-Bwwebj7zfYDDo43sYPxD8LN7q4Lq4EvqfyoDbw=s400-c-k-c0x00ffffff-no-rj","width":400,"height"
而不是我想要的作者图片 link :
https://yt3.ggpht.com/ytc/AKedOLS-Bwwebj7zfYDDo43sYPxD8LN7q4Lq4EvqfyoDbw=s400-c-k-c0x00ffffff-no-rj
我编写的代码
import re
import urllib.request
def get_author(uri):
html = urllib.request.urlopen(uri)
author_image = re.findall(r'yt3.ggpht.com/(\S{99})', html.read().decode())
return f"https://yt3.ggpht.com/{author_image[1]}"
抱歉我的英语不好,提前致谢=)
如果您不确定匹配的长度,请不要硬编码要匹配的字符数。 {99}
不适用于任意字符串。
此外,您想要匹配 mark-up 文本中的字符串,您需要确保只匹配到定界字符。如果它是一个 "
字符,则匹配直到该字符。
此外,正则表达式中的点是特殊的,您需要将它们转义以匹配文字点。
此外,findall
用于匹配所有匹配项,您可以使用re.search
获取第一个以释放一些资源。
所以,修复可能看起来像
def get_author(uri):
html = urllib.request.urlopen(uri)
author_image = re.search(r'yt3\.ggpht\.com/[^"]+', html.read().decode())
if author_image:
return f"https://{author_image.group()}"
return None # you will need to handle this condition in your later code
这里,author_image
是正则表达式匹配数据对象,如果匹配,需要在匹配值(author_image.group()
)前加上https://
和return值,否则,您需要 return 一些默认值以便稍后在代码中检查(此处,None
)。