![](/img/trans.png)
[英]While downloading a file from a website using python and webkit getting HTTP Error 500: Server Error
[英]HTTP Error 401: Authorization Required while downloading a file from HTTPS website and saving it
基本上我需要一个给出 URL 的程序,它会下载一个文件并保存它。 我知道这应该很容易,但这里有几个缺点......
首先,它是我在工作中构建的工具的一部分,除此之外我还有其他所有内容,URL 是 HTTPS,URL 是您将粘贴到浏览器中的 URL,如果您愿意,您会弹出一个提示打开或保存文件 (.txt)。
其次,我是这方面的初学者,所以如果有我没有提供的信息,请问我。 :)
顺便说一下,我正在使用 Python 3.3。
我试过这个:
import urllib.request
response = urllib.request.urlopen('https://websitewithfile.com')
txt = response.read()
print(txt)
我得到:
urllib.error.HTTPError: HTTP Error 401: Authorization Required
有什么想法吗? 谢谢!!
您可以使用 requests 库轻松完成此操作。
import requests
response = requests.get('https://websitewithfile.com/text.txt',verify=False, auth=('user', 'pass'))
print(response.text)
保存您将键入的文件
with open('filename.txt','w') as fout:
fout.write(response.text):
(我建议你总是在 resquests.get() 命令中设置 verify=True )
这是文档:
浏览器不也要求你登录吗? 然后您需要使用添加的身份验证重复请求,如下所示:
如果您没有 Requests 模块,那么下面的代码适用于 python 2.6 或更高版本。 不确定 3.x
import urllib
testfile = urllib.URLopener()
testfile.retrieve("https://randomsite.com/file.gz", "/local/path/to/download/file")
你可以试试这个解决方案: https : //github.qualcomm.com/graphics-infra/urllib-siteminder
import siteminder
import getpass
url = 'https://XYZ.dns.com'
r = siteminder.urlopen(url, getpass.getuser(), getpass.getpass(), "dns.com")
Password:<Enter Your Password>
data = r.read() / pd.read_html(r.read()) # need to import panda as pd for the second one
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.