本文摘自php中文网,作者爱喝马黛茶的安东尼,侵删。
一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正常访客,它可能就会会禁止这个IP的访问。所以我们需要设置一些代理服务器,每隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取。
在Python中,可以使用urllib2中的ProxyHandler来设置使用代理服务器,下面通过代码说明如何来使用代理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import urllib2
# 构建了两个代理Handler,一个有代理IP,一个没有代理IP
httpproxy_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()
|
上面使用的是免费的开放代理,我们可以在一些代理网站上收集这些免费代理,测试后如果可以用,就把它收集起来用在爬虫上面。
相关推荐:《python视频教程》
免费代理网站:
西刺免费代理
快代理免费代理
全国代理ip
如果你有足够多的代理,可以放在一个列表中,随机选择一个代理去访问网站。如下:
阅读剩余部分
相关阅读 >>
django中数据库设置的详细介绍(代码示例)
Python如何实现注册登录系统的实例详解
Python放射的代码实现
Python未来会进课本么
pandas技巧之 详解dataframe中的apply与applymap方法
Python中单下划线和双下划线有什么区别
Python字典的操作总结(附示例)
Python初学者应该了解的知识
Python中type()是什么意思
Python人工智能是什么意思
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python爬虫如何设置代理