python - 如何使用 Python urllib.urlretrieve 从带有令牌的 GitLab 下载图像)身份验证
问题描述
我正在编写一个脚本,以将 GitLab 问题(在我的情况下是要求)作为 Markdown 文件持久保存在带有标签的存储库中,并通过 GitLab CI 作为 PDF 中的已编译需求文档。此外,脚本需要下载所有附加的资源(图像、图表、PDF 文件等),因此它们也可以进行版本控制。
该脚本是用 Python 3.6 编写的,并使用python-gitlab来使用GitLab API v4。
请求问题描述文本后,会扫描该格式的图像 URL:![...](/uploads/<hash>/<filename>.<ext>)
. 每个相对路径都以 GitLab 的主机 URL 为前缀,并移交给urllib.urlretrieve
.
运行请求时,我收到 HTTP 401 错误,因为我没有经过身份验证。
for image in images:
downloadURL = URL + image
imagePath = "" + image
print(" downloading '{fromURL}' to '{toPath}'".format(fromURL=downloadURL, toPath=imagePath))
try:
urlretrieve(downloadURL, imagePath)
except HTTPError as ex:
print(ex)
except FileNotFoundError as ex:
print(ex)
GitLab 通过令牌使用身份验证。如何使用此身份验证方法urllib
?
例如,当我使用Insomnia直接向 GitLabs API 执行 JSON 请求时,我使用Private-Token
HTTP 标头进行身份验证。我可以将此标头添加到urllib
通话中吗?
解决方案
推荐阅读
- elm - 如何批量处理多个 http 调用?
- javascript - 如何以不同的名称安装相同的库
- scala - 如何将 Future[String] 转换为 String scala?
- laravel - 未定义的变量(Laravel 5.7)
- java - 使用 iText 识别 PDF 文档的键和值对
- javascript - AngularJS 1.x 应用程序中大型(ish)服务器生成的 SVG 的性能问题
- laravel - Laravel 5.4 elequent create 方法生成错误查询
- javascript - 倒数逻辑在使用 javascript 时不起作用
- mysql - MySQL 消失了:Connection_errors_peer_address 的数字很高
- python-3.x - 在从 .bat 文件调用的 vscode 中自动执行 python 脚本