(续)之前已经把IP全部爬取下来了。统计了下
看吧 ,总共有4万多个ip。
今天要写的是代理ip的过滤,免费的代理肯定有很多是不能用的。先说下思路:
1.从redis中把ip取出来。
2.一条一条测试去访问http://httpbin.org.get
3.如果能成功访问,则把这个ip放到redis中的可用ip池中,
4.如果不能访问则把ip放在redis的不可用ip池中。
因为免费代理的不稳定性。所有获取到的ip我这里先不直接删掉,而是放在redis中,过后再去测试或许还有IP能用。
这里我封装成类,方便以后测试。
class IpPool(object):
def __init__(self):
pass
#从redis中删除不可用的ip
def pop(self):
pass
#测试ip的可用性
def __check(self):
pass
#可用的ip放到redis中的可用ip池
def add(self):
pass
#大概的模型是这样的。然后一步步是实现这些方法。
网友评论