def check_proxy(self, proxy):
urllib2.install_opener(
urllib2.build_opener(
urllib2.ProxyHandler({'https': 'http://%s' % proxy})
)
)
try:
urllib2.urlopen(self.proxy_test_url, timeout=self.proxy_timeout)
return True
except:
return False
def run(self):
switch = False
while self.servers and self.proxies:
self.cron['servers_left'] = len(self.servers)
self.cron['proxies_left'] = len(self.proxies)
line = self.servers.pop(0)
ip = line.split(':')[0]
port = line.split(':')[1]
if not 'proxy' in locals() or switch == True:
proxy = self.proxies.pop(0)
if not self.check_proxy(proxy):
proxy = self.proxies.pop(0)
continue
switch = False
if self.check(ip, port, proxy) == False:
self.server.insert(0,line)
switch = True
c = checker(inn, valid, server, proxies)
for t in range(thread_count):
threads.append(my_thread(c))
print 'Starting threads 1 - %s.' % str(thread_count)
for t in threads:
t.start()
time.sleep(0.1)
这是脚本中使用.pop的部分,列表肯定不是空的。。它是wierd,如果它在1000个代理下,它会抛出错误,所以我把1000个代理复制到2000个,然后它运行,但是一旦它使用了这么多,它就会抛出错误列表是空的?如果不是的话,我想循环我的代理,但atm的主要问题是它应该从第一个代理到结束代理并完成任务。。在
相反,它声称列表是空的
索引器错误:从空列表弹出。在
目前没有回答
相关问题 更多 >
编程相关推荐