问题描述
我想通过遍历名称从 url 下载多个不同类型的文件。 它的样子:
我正在尝试使用请求库和以下代码:
import requests
import pandas as pd
from requests.auth import HTTPBasicAuth
from getpass import getpass
name = 'test.xls'
url_strat = '***'
output = open('data/test/' + name,'wb')
resp = requests.get(url_strat + name,auth=HTTPBasicAuth('username',getpass()))
resp.encoding = 'utf-8'
output.write(resp.content)
output.close()
print(url_strat + name)
但是我没有得到我想要的文件,对于我尝试的每个文件,我得到了相同的结果,一种主页。
要访问数据,我需要输入用户名和密码一次
有人知道这里出了什么问题或可能有什么问题吗? 我可以通过点击链接下载文件,但我想自动下载,因为文件很多。
非常感谢您的帮助!
解决方法
import requests
from getpass import getpass
resp = requests.get(url_strat + name,auth=('username',getpass()))
Requests 执行 http 基本身份验证。您不必明确指定它。您的问题可能是由于证书错误。如果是这样,请尝试 resp = requests.get(url_strat + name,verify=False,getpass()))
,但这是不安全的,您不应该这样做。