gpt4 book ai didi

python - 当url不变时如何使用python下载文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:20:39 24 4
gpt4 key购买 nike

我想从网页下载文件。该网页只有一个 .zip 文件(这就是我想要下载的文件),但是当我单击 .zip 文件时,它开始下载,但 URL 没有更改(URL 仍然保持 http://ldn2800 的形式:8080/id=2800)。考虑到没有 http://example.com/1.zip 形式的 URL,我如何使用 python 下载它?

此外,当我直接转到页面 http://ldn2800:8080/id=2800 时,它只会打开包含 .zip 文件的页面,但不会在没有单击的情况下下载它。如何使用Python下载它?

更新:现在我正在这样做:

if (str(dict.get('id')) == winID):
#or str(dict.get('id')) == linuxID):
#if str(dict.get('number')) == buildNo:
buildTypeId = dict.get('id')
ID = dict.get('id')
downloadURL = "http://example:8080/viewType.html?buildId=26009&tab=artifacts&buildTypeId=" + ID
directory = BindingsDest + "\\" + buildNo
if not os.path.exists(directory):
os.makedirs(directory)

fileName = None
if buildTypeId == linuxID:
fileName = linuxLib + "-" + buildNo + ".zip"
elif buildTypeId == winID:
fileName = winLib + "-" + buildNo + ".zip"

if fileName is not None:
print(dict)
downloadFile(downloadURL, directory, fileName)

def downloadFile(downloadURL, directory, fileName, user=user, password=password):
if user is not None and password is not None:
request = requests.get(downloadURL, stream=True, auth=(user, password))
else:
request = requests.get(downloadURL, stream=True)

with open(directory + "\\" + fileName, 'wb') as handle:
for block in request.iter_content(1024):
if not block:
break
handle.write(block)

但是,它只是在所需位置创建了一个 zip,但该 zip 无法打开并且没有任何内容。可以做这样的事情:比如在网页上搜索文件名,然后下载匹配的模式吗?

最佳答案

检查 HTTP 状态代码以确保没有发生错误。您可以使用内置方法 raise_for_status 来执行此操作:https://requests.readthedocs.io/en/master/api/#requests.Response.raise_for_status

def downloadFile(downloadURL, directory, fileName, user=user, password=password):
if user is not None and password is not None:
request = requests.get(downloadURL, stream=True, auth=(user, password))
else:
request = requests.get(downloadURL, stream=True)

request.raise_for_status()

with open(directory + "\\" + fileName, 'wb') as handle:
for block in request.iter_content(1024):
if not block:
break
handle.write(block)

您确定没有代理/固件等网络问题吗?

编辑:根据您的上述评论,我不确定这是否能回答您的实际问题。修改后的答案:

您访问包含 zip 文件链接的网页。您说的这个链接与页面本身相同。但是,如果您在浏览器中单击它,它会下载该文件,而不是再次到达 HTML 页面。这很奇怪,但可以用多种方式来解释。请复制/粘贴整个 HTML 页面代码(包括 zip 文件的链接),这可能有助于我们理解问题。

关于python - 当url不变时如何使用python下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38507599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com