Использование прокси-сервера 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