【发布时间】:2021-09-02 19:04:26
【问题描述】:
我正在尝试从该网站下载一些视频。所以当我在浏览器中输入网址时,网页会弹出一个小窗口,要求我输入用户名和密码。在我在那里输入它们后,文件会自动开始下载。但是当我尝试使用 requests.get 和 auth 参数来做同样的事情时,我得到了 404。
代码:
url = video_links[0]
print("url: ", url)
filename = os.path.basename(urlparse(url).path)
print('filename: ', filename)
r = requests.get(url, auth=(username, password))
print(r.status_code)
输出:
url: http://datasets.d2.mpi-inf.mpg.de/movieDescription/protected/avi/0001_American_Beauty/0001_American_Beauty_00.00.51.926-00.00.54.129.avi
filename: 0001_American_Beauty_00.00.51.926-00.00.54.129.avi
404
我已尝试传递用户代理。仍然无法正常工作。
代码版本 2:
headers = {
'User-Agent': 'Mozilla/something more',
}
with requests.Session() as s:
r = s.get(url, headers=headers)
print(r.content)
输出:
b'<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">\n<html><head>\n<title>401 Unauthorized</title>\n</head><body>\n<h1>Unauthorized</h1>\n<p>This server could not verify that you\nare authorized to access the document\nrequested. Either you supplied the wrong\ncredentials (e.g., bad password), or your\nbrowser doesn\'t understand how to supply\nthe credentials required.</p>\n<hr>\n<address>Apache/2.4.38 (Debian) Server at datasets.d2.mpi-inf.mpg.de Port 443</address>\n</body></html>\n'
【问题讨论】:
-
嗨,
HTTPBasicAuth失败了吗?或许也可以将您的 user agent 设置为已知浏览器 -
请将您的代码发布为文本。 Stack Overflow 不接受代码截图。
-
显示此页面的真实 URL。你如何发送登录名和密码?也许浏览器以不同的方式发送它。或者浏览器可能使用一些 JavaScript 进行重定向 - 但
requests无法运行 JavaScript。
标签: python python-requests download