Запуск селена за прокси-сервером

Я использую селен для автоматического моделирования браузера и веб-скребок в python, и он хорошо сработал для меня. Но теперь я должен запустить его за прокси-сервером. Итак, теперь selenium откроет окно, но не смог открыть запрошенную страницу из-за отсутствия настроек прокси-сервера в открывшемся браузере. Текущий код выглядит следующим образом (образец):

from selenium import webdriver sel = webdriver.Firefox() sel.get('http://www.google.com') sel.title sel.quit() 

Как изменить приведенный выше код для работы с прокси-сервером сейчас?

3 Solutions collect form web for “Запуск селена за прокси-сервером”

Вам нужно установить желаемые возможности или профиль браузера, например:

 profile = webdriver.FirefoxProfile() profile.set_preference("network.proxy.type", 1) profile.set_preference("network.proxy.http", "proxy.server.address") profile.set_preference("network.proxy.http_port", "port_number") profile.update_preferences() driver = webdriver.Firefox(firefox_profile=profile) 

Также см. Связанные темы:

Официальная документация Selenium ( http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy ) содержит четкие и полезные рекомендации по использованию прокси-сервера. Для Firefox (который является предпочтительным браузером в вашем примере кода) вы должны сделать следующее:

 from selenium import webdriver from selenium.webdriver.common.proxy import * myProxy = "host:8080" proxy = Proxy({ 'proxyType': ProxyType.MANUAL, 'httpProxy': myProxy, 'ftpProxy': myProxy, 'sslProxy': myProxy, 'noProxy': '' # set this value as desired }) driver = webdriver.Firefox(proxy=proxy) 

Это сделает работу:

 import selenium from selenium.webdriver.common.proxy import * proxyHost = "my.proxy.host or IP" proxyPort = "55555" fp = webdriver.FirefoxProfile() fp.set_preference("network.proxy.type", 1) #fp.set_preference("network.proxy.http", proxyHost) #HTTP PROXY #fp.set_preference("network.proxy.http_port", int(proxyPort)) #fp.set_preference("network.proxy.ssl", proxyHost) #SSL PROXY #fp.set_preference("network.proxy.ssl_port", int(proxyPort)) fp.set_preference('network.proxy.socks', proxyHost) #SOCKS PROXY fp.set_preference('network.proxy.socks_port', int(proxyPort)) fp.update_preferences() driver = webdriver.Firefox(firefox_profile=fp) driver.get("http://www.whatismyip.com/") 
  • Python Selenium Webdriver Не удалось запустить браузер браузера: разрешение отклонено
  • Как отключить Flash в Firefox с помощью Selenium в Python?
  • Selenium WebDriver и общий ожидания или задержки
  • Взаимодействие с всплывающими окнами с использованием селена в питоне
  • Selenium Webdriver / Beautifulsoup + Веб-скребок + Ошибка 416
  • Интернет-исследователь Selenium python
  • WebDriver - Python - Сколько элементов в раскрывающемся меню
  • Запуск Selenium WebDriver с использованием Python с расширениями (.crx-файлы)
  •  
    Interesting Posts for Van-Lav

    Selenium «Невозможно найти соответствующий набор возможностей», несмотря на то, что драйвер находится в / usr / local / bin

    Как читать файл и извлекать данные между многострочными шаблонами?

    Код Python, не умеющий писать в xls

    Когда использовать возврат (что-то вывести)?

    DeserializationError: объект «NoneType» не имеет атрибута «_meta», используя Django loaddata

    Как изменить размер фигуры боке

    Как ограничить вызовы API в многопоточной программе в Python 3?

    Ошибка загрузки закрытого ключа с помощью OpenSSL.crypto.Error:

    Как я могу написать скрипт python, который может запускать новые экземпляры EC2?

    Ошибка при использовании listdir в Python

    Существуют ли в Python словарные возможности? (Проблема с функцией return dict)

    Удалите четное / нечетное число из нечетного / четного списка Python.

    Как использовать параметр «count» в потоковом API tweepy?

    Переместить легенду легендарного сюжета на другую позицию?

    Аргумент Tornado – '_xsrf' отсутствует в POST

    Python - лучший язык программирования в мире.