爬虫(4)ProxyHandler处理器(代理设置)

你问我为啥用代理?

这问题问的好?如果可以不用,为啥偏偏要麻烦的使用代理呢?
其实啊,很多网站会检测某一时间某个ip的访问次数(通过流浪统计,系统日志等),如果访问次数多的不像正常人(正常人谁会对着一个网页一分钟刷新个上百次???),网站就会禁止这个ip的访问(通俗的将就是拉进黑名单了,哎呀你们是不是想起了追女神给发100条消息,女神把你拉进黑名单)在这里插入图片描述
言归正传,因此啊,我们可以设置一些代理服务器,每隔一段时间换一个代理,就算ip被禁止,依然可以换个ip继续使用(一个人有多个微信号,一个微信号用一种方法撩女神?女神拉黑了就换个微信号?是这样理解的吧).大家这样理解哈,虽然看起来很腹黑(不是看起来),但是有助于理解下面的代码和思想
机智
urllib中通过ProxyHandler来设置代理服务器,下面代码说明如何使用自定义opemer来使用代理:

代理的使用

#encoding: utf-8
from  urllib import request
'''
没有使用代理时,这里对外网的ip地址做一个查询,用来验证我们使用ip代理真的实现了ip的改变
url = 'http://httpbin.org/ip'
# resp = request.urlopen(url)
# print(resp.read())
'''
#使用了代理
url = 'http://httpbin.org/ip'
# 1.使用ProxyHandler传入代理构建一个handler
#handler相当于创建了一个微信号(当然可以创建多个,我们在这里只演示一个)
handler = request.ProxyHandler({"http":"113.109.213.148:8118"})#注意这里是字典格式的
# 2.使用上面创建的handler构建一个opener
#opener才是真正的发消息给女神
opener = request.build_opener(handler)
# 3.使用opener来发送请求
resp = opener.open(url)
print(resp.read())

#发现了使用了代理之后,ip地址的确发生了改变

常用的代理:

回头看了看自己的这篇博客,感觉虽然博客的例子真的是生动(哈哈哈,给我整乐了),但是好像废话太多了(小白程序员提着刀在路上),所以下面的这部分对今天的内容做一个小总结,也方便自己以后复习的时候只需要看总结就行啦.

总结:

1.代理的原理:

在请求目的网站之前,先请求代理服务器,然后让代理服务器去请求目的网站,代理服务器拿到目的网站的数据后,再转发给我们.
在这里插入图片描述

2.怎么查看我代理使用成功了没?

http://httpbin.org这个网站可以方便的查看http请求的一些参数.

怎么使用代理:

在代码中使用代理:

  • 使用urllib.request.ProxyHandler,传入一个代理,这个代理是一个字典,字典的key依赖于代理服务器能够接受的类型http或者是https,值是ip:port
  • 使用上一步创建的handler,以及request.build_opener创建一个opener
  • 使用上一步创建的opener,调用open函数,发起请求.

对于这个第三步我这边再啰嗦几句:
我们在不使用代理时发送请求使用的方法是request.urlopen,其实它的内部实现也是和我们创建代理的步骤是一致的,只是使用了自己的ip地址而已,这里我们直接上源码.
在这里插入图片描述

本文是我在学习爬虫视频时的一些笔记和自己的实战记录,如有侵权,联系我,会及时删除,另外如果有兄弟们要一起鼓励,一起学习,一起成长,一起头凉凉,欢迎关注我,一起监督一起成长

发布了76 篇原创文章 · 获赞 21 · 访问量 3425

猜你喜欢

转载自blog.csdn.net/qq_40742223/article/details/105462013
今日推荐