我是javascript的新手。我制作了一个python程序来下载文件,如果连接失败,程序可以恢复文件下载。但由于代理不允许我从除Web浏览器之外的其他程序建立连接,因此我在大学里没有工作。
事实是,我不能放下来自firefox的下载文件,例如,因为一段时间后连接断开了,所以我想做我在python中做的同样的事情,但是用javascript。
我花了一周时间寻找部分下载文件并将其存储在变量中的方法。例如......如果我有URL = http: //www.example.com/blabla/movie.mkv
因为我可以创建连接或下载128KB的块,例如?然后将其发送到文件。
并且...如何从某个字节到另一个字节继续下载? (比如添加标题Range=1024-
)
我尝试使用XMLHttpRequest
,但无法在两个不同的域(CORS)下载文件
答案 0 :(得分:0)
我认为由于CORS规则,你不能使用JavaScript。
实际上,您可以在为Firefox附加组件编写代码时禁用这些规则(例如Firefox SDK)
但是您的Python脚本可以欺骗其用户代理,以便代理将其视为常规浏览器。
例如,使用非常好的request library(但任何HTTP库都可以这样做):
import requests
r = requests.get('http://www.wikipedia.org/', headers={'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0'})
答案 1 :(得分:0)
好吧,如果CORS是您面临的唯一问题,您可以使用jsonp发出请求。
要继续直到结束,您可以从range header
添加byte
到-
。请参阅here,或者您可以参考content-length响应标头来获取文件大小。