使用Python Selenium for Chrome传递Proxy Auth

时间:2014-06-19 21:41:57

标签: python-2.7 selenium proxy selenium-chromedriver

我正在尝试使用proxymesh.com中的代理来抓取

我目前正在使用以下代码, 它会打开Chrome并创建一个javascript警报来输入用户名和密码。 我每次运行脚本的新实例时都会手动执行此操作。

如果有人可以帮助自动化它。

有两种方法可以做到,

以某种方式通过Chrome选项

传递用户名和密码

OR

以某种方式让webdriver切换到javascript警报并在那里输入用户名和密码。

到目前为止,这是我的代码,

from selenium import webdriver
chrome_option = webdriver.ChromeOptions()
chrome_option.add_argument("--proxy-server=http://us.proxymesh.com:31280")

b = webdriver.Chrome('chromedriver.exe',
                          chrome_options=chrome_option)
"Do Something"

提前致谢

1 个答案:

答案 0 :(得分:0)

这对我使用Chrome和代理身份验证起了作用。我没有proxymesh帐户,因此您必须自行验证是否有效:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

proxy = {'address': 'us.proxymesh.com:31280',
         'usernmae': 'johnsmith123',
         'password': 'iliketurtles'}


capabilities = dict(DesiredCapabilities.CHROME)
capabilities['proxy'] = {'proxyType': 'MANUAL',
                         'httpProxy': proxy['address'],
                         'ftpProxy': proxy['address'],
                         'sslProxy': proxy['address'],
                         'noProxy': '',
                         'class': "org.openqa.selenium.Proxy",
                         'autodetect': False}

capabilities['proxy']['socksUsername'] = proxy['username']
capabilities['proxy']['socksPassword'] = proxy['password']

driver = webdriver.Chrome(executable_path=[path to your chromedriver], desired_capabilities=capabilities)