Использование прокси-сервера http с безголовым firefox в Selenium webdriver в Python
Я использую Firefox без головы:
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium import webdriver
import os
import sys
# Set the MOZ_HEADLESS environment variable which casues Firefox to
# start in headless mode.
os.environ['MOZ_HEADLESS'] = '1'
# Select your Firefox binary.
binary = FirefoxBinary('/usr/bin/firefox', log_file=sys.stdout)
# Start selenium with the configured binary.
driver = webdriver.Firefox(firefox_binary=binary)
Но теперь я хочу добавить прокси-сервер http, требующий пользователя/пароль. После поиска я попробовал следующее:
from selenium.webdriver.common.proxy import Proxy, ProxyType
myProxy = "xx.xx.xx.xx:80"
proxy = Proxy({
'proxyType': ProxyType.MANUAL,
'httpProxy': myProxy,
'ftpProxy': myProxy,
'sslProxy': myProxy,
'noProxy': '' # set this value as desired
})
driver = webdriver.Firefox(firefox_binary=binary, proxy=proxy)
Я также пробовал
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", "xx.xx.xx.xx")
profile.set_preference("network.proxy.http_port", 80)
profile.update_preferences()
driver=webdriver.Firefox(firefox_binary=binary,firefox_profile=profile)
Наконец, я попробовал добавить "socksUsername" и "socksPassword" с кредитами на proxy
, больше из отчаяния, чем любая реальная надежда.
Излишне говорить, что ни одна из этих работ не работает, а тестирование показывает, что запросы по-прежнему используют мой обычный IP-адрес, а не прокси-сервер.
В этом случае также не доступен прокси-сервер всей системы.
Где должны находиться учетные данные прокси-сервера http? Как я могу использовать прокси с безголовым firefox?
Тестирование
driver.get("https://www.ipinfo.io");
driver.find_element_by_xpath('//h4/following-sibling::p').text
Ответы
Ответ 1
Попробуйте настроить профиль вручную с помощью
./firefox --ProfileManager
вручную настройте прокси-сервер, а затем загрузите профиль, который вы вручную установили
from selenium import webdriver
url = "https://mail.google.com"
fp = webdriver.FirefoxProfile('/Users/<username>/Library/Application Support/Firefox/Profiles/71v1uczn.default')
driver = webdriver.Firefox(fp)
Ответ 2
Вы можете попробовать настроить переменную окружения " HTTP_PROXY" в следующих мнемониках:
http://<username>:<password>@<proxy_url>
Добавьте свои учетные данные, разделенные двоеточием: "перед URL-адресом прокси, которому предшествует" @", например,
http://username:[email protected]:8080/file.pac