使用Python requests下载文件时出现InvalidURL错误求助
解决requests库InvalidURL错误的方案
错误原因
你的URL存在格式错误:
- 协议部分
https:\s不符合标准格式,正确的HTTPS协议前缀应为https:// - 路径中的反斜杠
\被错误使用,URL路径必须用正斜杠/分隔,导致requests无法识别主机地址,抛出No host supplied错误。
修正后的代码
import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } # 修正URL格式:替换错误分隔符,使用标准URL结构 url = "https://scontent.cdninstagram.com/v/t66.30100-16/122009079_349367310880138_909876289331831527_n.mp4?_nc_cat=103&ccb=1-7&_nc_sid=9a5d50&efg=eyJ2ZW5jb2RlX3RhZyI6ImlnLXhwdmRzLmNsaXBzLmMyLUMzLmRhc2hfdnA5ZXZlXzVfdjEifQ==&_nc_ohc=2vJyXzH4oP8AX9FUxpd&_nc_ht=scontent.cdninstagram.com&oh=00_AfDl7RGXZjG2dwJ8q0WD3rSQdQ0CBC2xf03JrEOIx0eSrw&oe=654971FE" print(url) req_DL = requests.get(url, headers=headers, verify=False, timeout=10) # 需提前定义文件名变量 filename = "instagram_video.mp4" with open(filename,'wb') as w: w.write(req_DL.content)
额外注意事项
- 必须提前定义
filename变量,否则会抛出未定义错误 - Instagram的CDN链接存在过期可能,若修正后仍无法下载,需重新获取有效视频URL
- 禁用SSL验证(
verify=False)存在安全风险,仅建议测试环境使用,生产环境请启用验证
内容的提问来源于stack exchange,提问作者hmd_phantom
相关产品推荐
相关产品推荐

