反爬虫策略应对-代劳IP池
还有一部分网站是经由过程检测用户行动,例如同一IP短时光内多次拜访同一页面,或者同一账户短时光内多次进行雷同操作。
大年夜多半网站都是前一种情况,对于这种情况,应用IP代劳就可以解决。如许的代劳ip爬虫经常会用到,最好本身预备一个。有了大年夜量代劳ip后可以每请求几回改换一个ip,这在requests或者urllib2中很轻易做到,如许就能很轻易的绕过第一种反爬虫。今朝知乎已经对爬虫做了限制,如不雅是单个IP的话,一段时光体系便会提示异常流量,无法持续爬取了。是以代劳IP池异常关键。网上有个免费的代劳IP API: http://api.xicidaili.com/free2016.txt
- import requests
- import random
- class Proxy:
- def __init__(self):
- self.cache_ip_list = []
- # Get random ip from free proxy api url.
- def get_random_ip(self):
- if not len(self.cache_ip_list):
- api_url = 'http://api.xicidaili.com/free2016.txt'
- try:
- r = requests.get(api_url)
- ip_list = r.text.split('\r\n')
- self.cache_ip_list = ip_list
- except Exception as e:
- # Return null list when caught exception.
- # In this case, crawler will not use proxy ip.
- print e
推荐阅读
Python源码理解: +=和 xx = xx + xx的区别
前菜在我们应用Python的过程, 很多时刻会用到 + 运算, 例如:先来看看字节码:a = 1 + 2 print a # 输出 3 不但在加法中应用, 在字符串的拼接也同样发挥这重要的感化, 例如:a = 'abc' +>>>详细阅读
本文标题:Python编写知乎爬虫实践
地址:http://www.17bianji.com/lsqh/35819.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示