python使用代理访问服务器
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使用代理访问服务器相关推荐
- Python设计模式-代理模式
Python设计模式-代理模式 基于Python3.5.2,代码如下 #coding:utf-8info_struct = dict() info_struct["addr"] = ...
- Python通过代理多线程抓取图片
前言 Python作为一门功能强大的脚本语言,经常被用来写爬虫程序,下面是Python通过代理多线程抓取图片代码 Python爬虫多线程抓取代理服务器参考: http://www.linuxeye.c ...
- python采集代理ip_Python采集代理ip并判断是否可用和定时更新的方法
网上有很多免费的ip地址,都是可以使用的,但是如果手动来获取太麻烦,这里通过Python自动抓取,可以批量获取. 代码如下: # -*- coding: utf-8 -*- import re imp ...
- 从入门到入土:Python requests代理 proxy配置 HTTP
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- python使用代理ip访问网站_python使用代理ip访问网站的实例
实例如下所示: # -*- coding: UTF-8 -*- from urllib import request if __name__ == "__main__": #访问网 ...
- Python搭建代理IP池(一)- 获取 IP
使用爬虫时,大部分网站都有一定的反爬措施,有些网站会限制每个 IP 的访问速度或访问次数,超出了它的限制你的 IP 就会被封掉.对于访问速度的处理比较简单,只要间隔一段时间爬取一次就行了,避免频繁访问 ...
- python使用代理
python使用代理 前言 解决爬虫经常遇到网络被封问题 直接上代码 import requests url = 'https://www.baidu.com' proxy = {'http': 'h ...
- Python获取代理池和提取可用IP
Python获取代理池和提取可用IP 前言 正文 请求代理池 筛选代理ip 保存可用的代理ip 把代理ip转发到本地(可选) 总结 前言 最近在学习Python爬虫的编写,发现很多网站设置了ip限制, ...
- python 使用代理ip爬虫
Python 使用代理ip爬虫 爬虫定义 代理ip 为什么要用代理ip 代理ip来源 如何代理 简单吗 结束 爬虫定义 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者 ...
最新文章
- Javascript字符串的格式化
- js数组中foEach和map的用法详解 jq中的$.each和$.map
- 《演讲之禅》助你成长为一名合格程序员
- 在Java生成的html页面加水印,Java在Excel中添加水印的实现(单一水印、平铺水印)...
- SpringMVC 参数校验
- metamask源码学习-ui/index.js
- 【转】HDC,CDC,CWindowDC,CClientDC,CPaintDC等等
- Linux建立虚拟ip的方法
- 如何用iso文件制作U盘启动
- python零基础教学plc_Python从基础到开发精修全面学习视频教程
- 智慧CAD手机精准看图隐私
- 2023东北大学计算机考研信息汇总
- [707]Apache NiFi安装及简单使用
- 图片指纹技术检测图片相似度
- 如何登录无线web认证服务器,路由器如何设置web认证的方式连接免费WIFI
- Centos 环境配置总结(持续更新)
- 读《哈佛情商课》有感
- 扒一扒DDR4的新功能和PCB设计上的一些注意事项--转
- python推荐引擎_python-doc/Python中一个简单的基于内容的推荐引擎.md at master · ictar/python-doc · GitHub...
- Flink-slot与parallelism
热门文章
- 矩阵的行列式(递归C++)
- 深入浅出Activity插件化相关原理
- 播放器制作初体验:FFMPEG + QT,只播放视频(持续更新,功能逐渐添加)(1)
- 挑战:对目前所有过图掉线情况和CPU负荷,网络负载的原因分析
- 掌握对外盘内盘的研判方法发现庄家动向
- 相机java程序_构建相机应用程序 - 接收
- Leetcode刷题笔记(代码随想录)
- Linux(ubuntu) LNMP环境搭建
- 出现java.lang.VerifyError:Bad type operand stack错误
- AI达人特训营]印度vs津巴布韦!板球比赛语义分割