Я использую прокси сервис Luminati с Selenium для очистки.Я настроил прокси так:
def get_driver(proxy_server):
executable_path = os.path.join(app.config['JOBS_ROOT'], app.config['BROWSER_DRIVER'])
firefox_profile = webdriver.FirefoxProfile()
firefox_options = FirefoxOptions()
firefox_options.add_argument('-headless')
if proxy_server and proxy_server != LOCAL_HOST:
firefox_profile.set_preference('network.proxy.type', 1)
firefox_profile.set_preference('network.proxy.http', 'zproxy.lum-superproxy.io')
firefox_profile.set_preference('network.proxy.http_port', 22225)
firefox_profile.set_preference('network.proxy.ssl', 'zproxy.lum-superproxy.io')
firefox_profile.set_preference('network.proxy.ssl_port', 22225)
driver = webdriver.Firefox(
executable_path=executable_path,
firefox_options=firefox_options,
firefox_profile=firefox_profile
)
return driver
Для использования Luminaty с такой конфигурацией требуется аутентификация:

Моя первая попытка сделатьУбедитесь, что прокси-IP-адрес работал https://whatsmyip.org:
driver.get('https://whatsmyip.org')
alert = WebDriverWait(driver, 5).until(expected_conditions.alert_is_present())
alert.send_keys(app.config['LUMINATI_CUSTOMER'] + Keys.TAB + app.config['LUMINATI_PASSWORD'])
alert.accept()
Но, после принятия с alert.accept()
драйвер просто закроется, даже не отображая содержимое страницы (плюс, иногда это выглядит очень нестабильно, иногдаэто работает, а иногда нет).
Так что я закончил тем, что повторил утверждение driver.get()
:
driver.get('https://whatsmyip.org')
alert = WebDriverWait(driver, 5).until(expected_conditions.alert_is_present())
alert.send_keys(app.config['LUMINATI_CUSTOMER'] + Keys.TAB + app.config['LUMINATI_PASSWORD'])
alert.accept()
driver.get('https://whatsmyip.org')
Но я не думаю, что так оно и должно работать.
Что еще более важно, в большинстве случаев я получаю следующую ошибку:
Traceback (most recent call last):
File "/home/cesar/Development/manar/venv/lib/python3.7/site-packages/rq/worker.py", line 812, in perform_job
rv = job.perform()
File "/home/cesar/Development/manar/venv/lib/python3.7/site-packages/rq/job.py", line 588, in perform
self._result = self._execute()
File "/home/cesar/Development/manar/venv/lib/python3.7/site-packages/rq/job.py", line 594, in _execute
return self.func(*self.args, **self.kwargs)
File "./jobs/scrapping.py", line 185, in scrap_plate_number
record = scrap_and_recognize(driver, vehicle)
File "./jobs/scrapping.py", line 91, in scrap_and_recognize
driver.find_element_by_xpath('//div[contains(@class, "jcrm-botondetalle")]/a').click()
File "/home/cesar/Development/manar/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "/home/cesar/Development/manar/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
'value': value})['value']
File "/home/cesar/Development/manar/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/cesar/Development/manar/venv/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 241, in check_response
raise exception_class(message, screen, stacktrace, alert_text)
selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: None
Message: Dismissed user prompt dialog: The proxy moz-proxy://zproxy.lum-superproxy.io:22225 is requesting a username and password. The site says: “Luminati”
Я понятия не имею, почему Firefox отклоняет предупреждение.Есть какие-нибудь подсказки?