使用Python下载文件出现错误699

问题描述 投票:0回答:2

https://www.bibleprotector.com 上有可供下载的文件(如

TEXT-PCE.zip
)。
通过“右键单击”手动下载就可以了。

但是,当尝试使用 Python 下载相同的文件时,会返回

699
错误。

import requests
url = 'https://www.bibleprotector.com/TEXT-PCE.zip'
r = requests.get(url, allow_redirects=True)
open('test.zip', 'wb').write(r.content)

有没有办法使用Python下载这个文件?

python python-requests download zip
2个回答
0
投票

找到解决方案:将

allow_redirects
设置为
False

import requests
url = 'https://www.bibleprotector.com/TEXT-PCE.zip'
r = requests.get(url, allow_redirects=False)
open('test.zip', 'wb').write(r.content)

0
投票

我很好奇上面的代码是如何为你工作的。你得到了什么结果?当我运行它时,我得到了一个 html 文件:

import requests
   url = 'https://www.bibleprotector.com/TEXT-PCE.zip'
   r = requests.get(url, allow_redirects=False)
   open('test.zip', 'wb').write(r.content)

$ 猫测试.zip
' 403 禁忌 403 禁止

访问服务器上的此资源被拒绝!

'

这就是我能够成功地将 zip 文件加载到您的测试 URL 中的方法:

import shutil
import os
import requests

# Pretend to be a real browser:
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/118.0"

hdrs = {'user-agent': user_agent}

# Byte-stream the results
r = requests.get(url, headers = hdrs, stream = True)

# Write the bytes to disk
with open('test.zip','wb') as f:
    shutil.copyfileobj(r.raw, f)

$ 文件 test.zip
test.zip:Zip存档数据,至少v2.0才能解压,压缩方式=deflate

解压后得到了文本文件

TEXT-PCE.txt
,大小为 4.3MB。

© www.soinside.com 2019 - 2024. All rights reserved.