You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

提取首个HTTPS链接时代码返回全部链接的问题排查

问题:提取Vimeo视频文本中的第一条HTTPS链接失败

变量x存储的Vimeo视频信息文本如下:

1758162
hd
video/mp4
2160
3840
23.976
https://player.vimeo.com/external/479728625.hd.mp4?s=84b5a866b5b24de0e1d3bc20fbd0a98d544bda93&profile_id=172&oauth2_token_id=57447761
1200135
hd
video/mp4
1080
1920
29.97
https://player.vimeo.com/external/449630779.hd.mp4?s=2d49b6c1ec0a2fe9b65b424a112839aba1ae5437&profile_id=175&oauth2_token_id=57447761

尝试提取第一条HTTPS链接时编写的代码:

d = []
if "https" in str(x):
   d.append(x)
else:
   pass
print(d[0])

执行后返回了两条HTTPS链接,而非仅第一条,问题出在哪里?


错误原因

你的代码逻辑存在核心问题:当检测到x中包含"https"时,直接将整个原始文本添加到了列表d中,并没有对文本进行拆分提取。因此d[0]实际上是完整的原始字符串,自然包含两条链接。

正确解法

需要先将文本按换行符分割为单独的行,然后遍历每行找到第一个以https开头的内容即可:

方法一:循环遍历取第一条

# 将文本按行分割为列表
lines = str(x).splitlines()
first_https_link = None

for line in lines:
    # 去除行首尾空白字符后判断是否以https开头
    stripped_line = line.strip()
    if stripped_line.startswith("https"):
        first_https_link = stripped_line
        break  # 找到第一条后立即终止循环,避免多余遍历

print(first_https_link)

方法二:使用生成器表达式快速获取

lines = str(x).splitlines()
# 直接取第一个符合条件的链接
first_https_link = next(line.strip() for line in lines if line.strip().startswith("https"))
print(first_https_link)

内容的提问来源于stack exchange,提问作者mnnewbilr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:32:55