首页 > 解决方案 > 无法通过 HTTP 下载文件 - 会话挂起

问题描述

一位朋友告诉我,当他进入以下网站时: http:
//tatoochange.com/watch/OGgmlnav-joe-gould-s-secret/vip.html

他注意到,当他播放视频时,在 Fiddler 上他看到了文件的路径 ( http://85.217.223.24/vids/joe_goulds_secret_2000.mp4):
在此处输入图像描述

所以他尝试从浏览器下载它,但收到错误:
在此处输入图像描述

在播放视频时GET检查了Burpe 的请求:

GET /vids/joe_goulds_secret_2000.mp4 HTTP/1.1
Host: 85.217.223.24
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Referer: http://entervideo.net/watch/3accec760b23ad4
Range: bytes=0-
Connection: close

我将其转换为 python 脚本:

import requests

session = requests.Session()

headers = {"Accept":"video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5","User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0","Referer":"http://entervideo.net/watch/3accec760b23ad4","Connection":"close","Accept-Language":"en-US,en;q=0.5","Range":"bytes=0-"}
response = session.get("http://85.217.223.24/vids/joe_goulds_secret_2000.mp4", headers=headers)

print("Status code:   %i" % response.status_code)
print("Response body: %s" % response.content)

当我运行它时,它挂在他的身上。
我不知道是否下载它。

我的问题是,为什么我不能通过访问它来从浏览器下载它?
其次,即使我使用的脚本没有出现任何错误,它也会挂起......

标签: pythonhttpget

解决方案


不建议使用 session.get 下载大文件。这主要用于接收 json 或 xml 列表的网络调用。要下载大文件,您应该遵循此线程中显示的方法:

使用请求在python中下载大文件


推荐阅读