PHP前端开发

Python爬虫如何设置代理

百变鹏仔 3小时前 #Python
文章标签 爬虫

一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个ip的访问次数,如果访问频率太快以至于看起来不像正常访客,它可能就会会禁止这个ip的访问。所以我们需要设置一些代理服务器,每隔一段时间换一个代理,就算ip被禁止,依然可以换个ip继续爬取。

在Python中,可以使用urllib2中的ProxyHandler来设置使用代理服务器,下面通过代码说明如何来使用代理:

import urllib2# 构建了两个代理Handler,一个有代理IP,一个没有代理IPhttpproxy_handler = urllib2.ProxyHandler({"http" : "124.88.67.81:80"})nullproxy_handler = urllib2.ProxyHandler({})#定义一个代理开关proxySwitch = True # 通过 urllib2.build_opener()方法使用这些代理Handler对象,创建自定义opener对象# 根据代理开关是否打开,使用不同的代理模式if proxySwitch:      opener = urllib2.build_opener(httpproxy_handler)else:    opener = urllib2.build_opener(nullproxy_handler)request = urllib2.Request("http://www.baidu.com/")# 使用opener.open()方法发送请求才使用自定义的代理,而urlopen()则不使用自定义代理。response = opener.open(request)# 就是将opener应用到全局,之后所有的,不管是opener.open()还是urlopen() 发送请求,都将使用自定义代理。# urllib2.install_opener(opener)# response = urlopen(request)print response.read()

上面使用的是免费的开放代理,我们可以在一些代理网站上收集这些免费代理,测试后如果可以用,就把它收集起来用在爬虫上面。