首页 > 解决方案 > 使用 Python 请求下载 zip 扩展时获取损坏的 zip 文件

问题描述

我想用python脚本在[链接不再存在]下载一个测试文件。

如果你自己去链接,下载将自动开始。

虽然,如果我尝试运行这个脚本,我会得到一个损坏的folder.zip文件,它是一个 html 文件:

import os
import requests

URL = "http://kolterdev.epizy.com/dir/VoidShipsUploads/folder.zip"
DIR = os.getcwd()

download = requests.get(URL)

print(download.content)

open(filename, 'wb').write(download.content)

这是我找到的 html 文件,而不是 zip 文件:

<html>

<body>
    <script type="text/javascript" src="/aes.js"></script>
    <script>
        function toNumbers(d) {
            var e = [];
            d.replace(/(..)/g, function(d) {
                e.push(parseInt(d, 16))
            });
            return e
        }

        function toHex() {
            for (var d = [], d = 1 == arguments.length && arguments[0].constructor == Array ? arguments[0] : arguments, e = "", f = 0; f < d.length; f++) e += (16 > d[f] ? "0" : "") + d[f].toString(16);
            return e.toLowerCase()
        }
        var a = toNumbers("f655ba9d09a112d4968c63579db590b4"),
            b = toNumbers("98344c2eee86c3994890592585b49f80"),
            c = toNumbers("7a2b1adb5e9b4162d6571ff0b6145a53");
        document.cookie = "__test=" + toHex(slowAES.decrypt(c, 2, a, b)) + "; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";
        location.href = "http://kolterdev.epizy.com/dir/VoidShipsUploads/folder.zip?i=1";
    </script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript>
</body>

</html>

我该怎么做才能获取文件?

编辑:具有该 url 的页面不再存在。

标签: pythonfiledownloadpython-requests

解决方案


import urllib.request
...
url = 'http://example.com/'
response = urllib.request.urlopen(url)
data = response.read()      # a `bytes` object
text = data.decode('utf-8') # a `str`; this step can't be used if data is binary

另外,请看一下这个答案 https://stackoverflow.com/a/7244263/13227971


推荐阅读