python使用代理访问服务器主要有一下3个步骤:

1.创建一个代理处理器ProxyHandler:

proxy_support = urllib.request.ProxyHandler(),ProxyHandler是一个类,其参数是一个字典:{ '类型':'代理ip:端口号'}

什么是Handler?Handler也叫作处理器,每个handlers知道如何通过特定协议打开URLs,或者如何处理URL打开时的各个方面,例如HTTP重定向或者HTTP cookies。

2.定制、创建一个opener:

opener = urllib.request.build_opener(proxy_support)

什么是opener?python在打开一个url链接时,就会使用opener。其实,urllib.request.urlopen()函数实际上是使用的是默认的opener,只不过在这里我们需要定制一个opener来指定handler。

3a.安装opener

urllib.request.install_opener(opener)

install_opener 用来创建(全局)默认opener,这个表示调用urlopen将使用你安装的opener。

3b.调用opener
opener.open(url)

该方法可以像urlopen函数那样直接用来获取urls:通常不必调用install_opener,除了为了方便。

>>> proxy_support = urllib.request.ProxyHandler({'http':'115.32.41.100:80'})
>>> proxy_support
<urllib.request.ProxyHandler object at 0x0000000002EE74A8>
>>> opener = urllib.request.build_opener(proxy_support)
>>> opener
<urllib.request.OpenerDirector object at 0x0000000002F972B0>
>>> opener.handlers
[<urllib.request.ProxyHandler object at 0x0000000002EE74A8>, <urllib.request.UnknownHandler object at 0x0000000003197B38>, <urllib.request.HTTPHandler object at 0x0000000003197C18>, <urllib.request.HTTPDefaultErrorHandler object at 0x0000000003197CC0>, <urllib.request.HTTPRedirectHandler object at 0x0000000003197BA8>, <urllib.request.FTPHandler object at 0x0000000003197DD8>, <urllib.request.FileHandler object at 0x0000000003197E80>, <urllib.request.HTTPSHandler object at 0x0000000003197E48>, <urllib.request.HTTPErrorProcessor object at 0x0000000003197E10>]
>>> opener.addheaders
[('User-agent', 'Python-urllib/3.3')]
>>> opener.addheaders = [('User-Agent','Test_Proxy_Python3.5_maminyao')]
>>> opener.addheaders
[('User-Agent', 'Test_Proxy_Python3.5_maminyao')]
>>>

从代理ip列表中随机使用某ip去访问URL的例子

 1 import urllib.request
 2 import random
 3
 4 url = 'http://www.whatismyip.com.tw'
 5 iplist = ['115.32.41.100:80','58.30.231.36:80','123.56.90.175:3128']
 6
 7 proxy_support = urllib.request.ProxyHandler({'http':random.choice(iplist)})
 8 opener = urllib.request.build_opener(proxy_support)
 9 opener.addheaders = [('User-Agent','Test_Proxy_Python3.5_maminyao')]
10 urllib.request.install_opener(opener)
11 response = urllib.request.urlopen(url)
12 html = response.read().decode('utf-8')
13
14 print(html)

python使用代理访问服务器相关推荐

  1. Python设计模式-代理模式

    Python设计模式-代理模式 基于Python3.5.2,代码如下 #coding:utf-8info_struct = dict() info_struct["addr"] = ...

  2. Python通过代理多线程抓取图片

    前言 Python作为一门功能强大的脚本语言,经常被用来写爬虫程序,下面是Python通过代理多线程抓取图片代码 Python爬虫多线程抓取代理服务器参考: http://www.linuxeye.c ...

  3. python采集代理ip_Python采集代理ip并判断是否可用和定时更新的方法

    网上有很多免费的ip地址,都是可以使用的,但是如果手动来获取太麻烦,这里通过Python自动抓取,可以批量获取. 代码如下: # -*- coding: utf-8 -*- import re imp ...

  4. 从入门到入土:Python requests代理 proxy配置 HTTP

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  5. python使用代理ip访问网站_python使用代理ip访问网站的实例

    实例如下所示: # -*- coding: UTF-8 -*- from urllib import request if __name__ == "__main__": #访问网 ...

  6. Python搭建代理IP池(一)- 获取 IP

    使用爬虫时,大部分网站都有一定的反爬措施,有些网站会限制每个 IP 的访问速度或访问次数,超出了它的限制你的 IP 就会被封掉.对于访问速度的处理比较简单,只要间隔一段时间爬取一次就行了,避免频繁访问 ...

  7. python使用代理

    python使用代理 前言 解决爬虫经常遇到网络被封问题 直接上代码 import requests url = 'https://www.baidu.com' proxy = {'http': 'h ...

  8. Python获取代理池和提取可用IP

    Python获取代理池和提取可用IP 前言 正文 请求代理池 筛选代理ip 保存可用的代理ip 把代理ip转发到本地(可选) 总结 前言 最近在学习Python爬虫的编写,发现很多网站设置了ip限制, ...

  9. python 使用代理ip爬虫

    Python 使用代理ip爬虫 爬虫定义 代理ip 为什么要用代理ip 代理ip来源 如何代理 简单吗 结束 爬虫定义 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者 ...

最新文章

  1. Javascript字符串的格式化
  2. js数组中foEach和map的用法详解 jq中的$.each和$.map
  3. 《演讲之禅》助你成长为一名合格程序员
  4. 在Java生成的html页面加水印,Java在Excel中添加水印的实现(单一水印、平铺水印)...
  5. SpringMVC 参数校验
  6. metamask源码学习-ui/index.js
  7. 【转】HDC,CDC,CWindowDC,CClientDC,CPaintDC等等
  8. Linux建立虚拟ip的方法
  9. 如何用iso文件制作U盘启动
  10. python零基础教学plc_Python从基础到开发精修全面学习视频教程
  11. 智慧CAD手机精准看图隐私
  12. 2023东北大学计算机考研信息汇总
  13. [707]Apache NiFi安装及简单使用
  14. 图片指纹技术检测图片相似度
  15. 如何登录无线web认证服务器,路由器如何设置web认证的方式连接免费WIFI
  16. Centos 环境配置总结(持续更新)
  17. 读《哈佛情商课》有感
  18. 扒一扒DDR4的新功能和PCB设计上的一些注意事项--转
  19. python推荐引擎_python-doc/Python中一个简单的基于内容的推荐引擎.md at master · ictar/python-doc · GitHub...
  20. Flink-slot与parallelism

热门文章

  1. 矩阵的行列式(递归C++)
  2. 深入浅出Activity插件化相关原理
  3. 播放器制作初体验:FFMPEG + QT,只播放视频(持续更新,功能逐渐添加)(1)
  4. 挑战:对目前所有过图掉线情况和CPU负荷,网络负载的原因分析
  5. 掌握对外盘内盘的研判方法发现庄家动向
  6. 相机java程序_构建相机应用程序 - 接收
  7. Leetcode刷题笔记(代码随想录)
  8. Linux(ubuntu) LNMP环境搭建
  9. 出现java.lang.VerifyError:Bad type operand stack错误
  10. AI达人特训营]印度vs津巴布韦!板球比赛语义分割