python 通过代理下载镜像文件

背景

工作环境不能访问外网,python环境依赖很多包,手工下载比较慢,因此通过设置代理,批量下载包。

代码

# -*- coding: UTF-8 -*-
from urllib import request
import os
import urllib

if __name__ == "__main__":
    savePath = '******'   # 下载文件存储的路径
    # 访问网址
    # url = 'http://www.whatismyip.com.tw/'
    # url='https://mirrors.tuna.tsinghua.edu.cn'  # 可以正常访问
    # url='https://pypi.tuna.tsinghua.edu.cn/simple/'
    #url ='https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/'
    url = 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/linux-64//paddlepaddle-2.1.0-py39_cpu_many_linux.tar.bz2'
    # 这是代理IP
    ip = '*.*.*.*:port' # 代理ip和端口
    # 设置代理ip访问方式,http和https
    proxy = {'http': ip, 'https': ip}
    # 创建ProxyHandler
    proxy_support = request.ProxyHandler(proxy)
    # 创建Opener
    opener = request.build_opener(proxy_support)
    # 添加User Angent
    opener.addheaders = [('User-Agent',
                          'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0')]
    # 安装OPener
    request.install_opener(opener)
    # 使用自己安装好的Opener
    response = request.urlopen(url)
    # 读取相应信息并解码
    # html = response.read().decode("utf-8")

    saveFile = open(savePath + 'paddlepaddle-2.1.0-py39_cpu_many_linux.tar.bz2', 'wb')
    saveFile.write(response.read())
    saveFile.close()

    # html = response.read()
    # print(os.getcwd())
    # 打印信息
    #print(html)
    response.close()


版权声明:本文为zhouwenyuan1015原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。