在 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下载这个文件?
找到解决方案:将
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)
我很好奇上面的代码是如何为你工作的。你得到了什么结果?当我运行它时,我得到了一个 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。