我正在尝试创建一个类,它将具有逐个测试http代理的方法,直到我有一个可以添加到selenium webdriver实例的工作方法。
我有一个raw_input来验证代理是否在webdriver中工作,如果它不工作它应该测试另一个代理并要求我确认然后关闭驱动程序或保持打开状态。 (我删除了使用测试方法的if语句,因为我收到了错误)
当我在终端输入“n”时,我会被要求确认它关闭浏览器并打开另一个与另一个代理人但是当我第二次输入'n'时浏览器保持打开状态。
class Driver:
def test(self):
try:
urllib.urlopen(
"https://www.google.com",
proxies={'http': proxy}
)
return True
except IOError:
print "Connection error! (Check proxy)"
else:
return False
def get_driver(self):
proxies = []
with open('working_proxies.txt', 'rb') as working_proxies:
for proxy in working_proxies:
proxy.rstrip()
proxies.append(proxy.decode('ascii'))
for i in proxies:
try:
myproxy = proxies.pop()
proxy = Proxy({
'proxyType': ProxyType.MANUAL,
'httpProxy': myproxy,
'ftpProxy': myproxy,
'sslProxy': myproxy,
'noProxy': '' # set this value as desired
})
driver = webdriver.Firefox(proxy=proxy)
is_working = raw_input('Is your proxy working? [y/n]: ')
if is_working == 'y' or is_working == 'Y':
return driver
if is_working == 'n' or is_working == 'N':
driver.close()
continue
if not is_working == 'y' or is_working == 'Y' or is_working == 'n' or is_working == 'N':
print 'Invallid'
except:
continue
driver = Driver()
driver = driver.get_driver()
driver.get("https://www.google.com")
答案 0 :(得分:0)
您可以尝试使用driver.quit()
代替driver.close()