1 ''' 2 构建代理集群/队列 3 每次访问服务器,随机抽取一个代理 4 抽取可以使用 random.choice 5 6 分析步骤: 7 1. 构建代理群 8 2. 每次访问,随机选取代理并执行 9 ''' 10 11 12 from urllib import request, error 13 14 15 # 使用代理步骤 16 # 1. 设置代理地址 17 proxy_list = [ 18 # 列表中存放的是dict类型的元素 19 {"http": "101.50.1.2:80"}, 20 {"http": "58.240.172.110:3128"}, 21 {"http": "124.193.51.249:3128"}, 22 {"http": "120.199.64.163:8081"} 23 ] 24 25 # 2. 创建ProxyHandler 26 proxy_handler_list = [] 27 for proxy in proxy_list: 28 proxy_handler = request.ProxyHandler(proxy) 29 proxy_handler_list.append(proxy_handler) 30 # 3. 创建Opener 31 opener_list = [] 32 for proxy_handler in proxy_handler_list: 33 opener = request.build_opener(proxy_handler) 34 opener_list.append(opener) 35 36 import random 37 38 url = "http://www.baidu.com" 39 # 现在如果访问url,则使用代理服务器 40 try: 41 # 4. 安装Opener 42 opener = random.choice(opener_list) 43 request.install_opener( opener) 44 45 rsp = request.urlopen(url) 46 html = rsp.read().decode() 47 print(html) 48 except error.URLError as e: 49 print(e) 50 except Exception as e: 51 print(e)