2017-10-09 259 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實例。

相關問題