如何使用chromedriver和python修复硒代理

时间:2019-01-21 19:48:59

标签: python selenium python-requests

代理只能与请求库一起使用,而不能与硒一起使用,但是当不使用代理时,硒可以发挥全部功能。

我已经尝试过stackoverflow提出的关于如何将代理与硒一起使用的许多建议。最常见的是我粘贴在代码片段中的内容。但是,每次我使用此请求都会失败。

代理可以通过请求库正常运行。

当我从chrome选项中删除proxy参数时,它可以正常工作,但不能与proxy参数一起使用。

任何人都可以推荐一些帮助

proxy = 'MY_PROXY_GOES_HERE'
url = 'https://google.co.uk/'

# Try with selenium 

driver_path = "chromedriver"
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')
driver = webdriver.Chrome(executable_path=driver_path, chrome_options=chrome_options)
driver.implicitly_wait(30)  # seconds
driver.get(url=url)

# Try with requests

proxies = {'https': proxy}
response = requests.get(url, proxies=proxies)

1 个答案:

答案 0 :(得分:0)

我尝试了您的代码,它可以正常工作,请参见下文。我只添加了一个随机代理服务器。 根据您得到的异常,可能的猜测是隐式等待会导致超时。所以我从下面的代码中删除了它。如果仍然超时,请尝试将默认页面超时(driver.set_page_load_timeout(xxx))更改为更高的值,chromedriver默认为60s。

from selenium import webdriver

proxy = 'http://202.60.227.65:57887'
url = 'https://google.co.uk/'

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')
driver = webdriver.Chrome(options=chrome_options)
driver.get(url=url)