Python实战之使用IP代理

     一般网站会设置一个固定的IP访问频率的阀值,如果一个IP访问频率过于频繁,网站服务器就会判断为爬虫程序,从而禁止我们访问。使用IP代理可以很好地解决这个问题。

使用IP代理的步骤:

1、调用urllib.request.ProxyHandler(proxies)

2、创建Opener
urllib.request.build_opener(【proxy,HTTPHandler,......】)
3、安装opener
urllib.request.install_opener(opener)
寻找IP的话,这里推荐西刺免费代理IP,网址http://www.xicidaili.com/wn/

import urllib.request
#定义一个使用IP代理的函数
def use_proxy(url,proxy_addr):
      #创建ProxyHandler(proxies) 其中proxies参数为一个字典
      proxy=urllib.request.ProxyHandler({"http":proxy_addr}) 
      #创建opener ,其中HTTPhander参数是固定的
      opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandler) 
      # 安装opener
      urllib.request.install_opener(opener) 
      #打开URL并解码 
      data=urllib.request.urlopen(url).read().decode("utf-8","ignore") 
      return data
proxy_addr="218.20.55.116:999" #代理 IP:端口
url="https://kankan.eastday.com/?qid=01451#redian"
data=use_proxy(url,proxy_addr) #调用use_proxy()
print(len(data)) #长度大代表爬成功


试了好几个IP才成功,如下:

Python实战之使用IP代理_第1张图片

你可能感兴趣的:(python3.5)