爬取到代理之后,使用时当然不能老是撸一只羊的毛。循环着使用代理可以增加单个代理的间隔时间,远离反爬阈值
下面介绍一种简单的python队列实现:
通过pop返回并删除第一个代理,可用则用完之后加到末尾,通过break结束循环;不可用则舍弃,通过continue进入下一次循环。当proxies为空之后,通过break结束url的迭代。以下是代码:
urls = []#你要抓取的url链接列表
proxies = []#你抓到的代理列表
for url in urls:
while proxies:
proxy = proxies.pop(0)
try:
r = requests.get(url,proxies = proxy)
except:
continue
else:
proxies.append(proxy)
break
if not proxies:break
另外pop()默认的是删除并返回最后一个元素,以此可以实现循环。