2017-10-09 91 views
0

我正在创建一个去网站,更改代理,然后重新加载网站的机器人。我想在循环中更新chrome webdriver的代理,但是如果我使用新代理创建新的webdriver,我只能找到一种方法来执行此操作。我只想更新当前的chromedriver的代理,而不是用新代理创建一个新代理。Python Selenium |更新代理服务器而不重新启动浏览器

x = 1 
while x < 5: 

    chrome_options = webdriver.ChromeOptions() 
    chrome_options.add_argument('--proxy-server=%s' % random.choice(PROXY)) 

    chrome = webdriver.Chrome(chrome_options=chrome_options) 
    chrome.get("http://whatismyipaddress.com") 
    x = x + 1 

此代码会在每次循环循环时创建一个新的webdriver。我怎样才能做到这一点,所以它只会更新当前webdriver的新代理呢?

我想更改代理服务器而不重新启动浏览器的原因是因为如果我重新启动,我需要输入验证码,而当我没有时,我可以直接更改代理并点击发送而不输入验证码。

回答

0

我发现这个解决方案,它仅适用于通过参数PhantomJS

browser.command_executor._commands['executePhantomScript'] = ('POST', '/session/$sessionId/phantom/execute') 
    browser.execute('executePhantomScript', {'script': 'phantom.setProxy('PROXY_IP', 'PROXY_PORT');', 'args' : [] }) 

通代理工作犯规允许更改运行时间的代理。你将不得不做另一个webdriver实例。

相关问题