python3 urllib代理_python3下urllib.request库高级应用之ProxyHandler处理器(代理设置)...

1. 代理简介

很多网站都会检测某一段时间某个IP的访问次数,如果同一个IP访问过于频繁,那么该网站就会禁止来自该IP的访问,针对这种情况,可以使用代理服务器,每隔一段时间换一个马甲。“他强任他强,劳资会变翔”哈哈哈。

免费的开放代理获取无成本,我们可以收集这些免费代理,测试后如果可以用,用在爬虫上。

免费短期代理网站举例:

名词解释:

免费短期代理网站分高匿和透明

【高匿】:代表服务器追踪不到你原来的IP;

【透明】:代表服务器可以追踪到你的代理IP和原来的IP;

类型表示支持的类型:HTTP或者HTTPS

【存活的时间】:表示在这个期间可用

2.设置代理服务器

urllib.request中通过ProxyHandler来设置使用代理服务器,下面代码说明如何使用自定义opener来使用代理:

例子1:单个代理IP

1 importurllib.request2

3 #构建两个代理Handler,一个有代理IP,一个没有

4 httpproxy_handler = urllib.request.ProxyHandler({"http": "211.141.111.114:61395"})5 nullproxy_handler =urllib.request.ProxyHandler({})6 proxy_switch = True #定义一个代理开关

7

8 #通过urllib.request.build_opener() 方法创建自定义opener对象

9 #根据代理开关是否打开,使用不同的代理模式

10 ifproxy_switch:11 opener =urllib.request.build_opener(httpproxy_handler)12 else:13 opener =urllib.request.build_opener(nullproxy_handler)14

15 request = urllib.request.Request("http://www.baidu.com")16 response =opener.open(request)17 print(response.read())

注意:

如果程序中所有的请求都使用自定义的opener, 可以使用urllib.install_opener()将自定义的opener定义为全局opener,表示之后凡是调用urlopen,都将使用自定义的opener。

例子2:代理IP列表随机抽取

如果代理IP足够多,就可以像随机获取User-Agent一样,随机选择一个代理去访问网站。

1 importurllib.request2 importrandom3

4 proxy_list =[5 {"http": "211.141.111.114:61395"},6 {"http": "61.135.217.7:80"},7 {"http": "171.39.74.97:8123"},8 {"http": "218.59.228.18:61976"},9 {"http": "221.224.136.211:35101"},10 ]11

12 #随机选择一个代理

13 proxy =random.choice(proxy_list)14

15 #使用选择的代理构建代理处理器对象

16 httpproxy_handler =urllib.request.ProxyHandler(proxy)17 opener =urllib.request.build_opener(httpproxy_handler)18 request = urllib.request.Request("http://www.baidu.com")19 response =opener.open(request)20 print(response.read())

这些免费开放代理一般会有很多人都在使用,而且代理有寿命短,速度慢,匿名度不高,HTTP/HTTPS支持不稳定等缺点(免费没好货)。

所以,专业爬虫工程师或爬虫公司会使用高品质的私密代理,这些代理通常需要找专门的代理供应商购买,再通过用户名/密码授权使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值