Py学习  »  Python

在Python SeleFirefox网络驱动程序上配置代理

Rimo • 5 年前 • 1563 次点击  

我不能通过硒火狐浏览器使用代理连接。

使用此配置,将生成连接,但不通过代理,而是通过本地服务器。

关于这件事有两个问题 this documentation, 但似乎没有人能解决蟒蛇3的问题:

def selenium_connect():

    proxy = "178.20.231.218"
    proxy_port = 80
    url = "https://www.whatsmyip.org/"

    fp = webdriver.FirefoxProfile()
    # Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5
    fp.set_preference("network.proxy.type", 1)
    fp.set_preference("network.proxy.http",proxy)
    fp.set_preference("network.proxy.http_port",proxy_port)
    fp.update_preferences()
    driver = webdriver.Firefox(firefox_profile=fp)
    driver.get(url)

我使用的是FirefoxWebDriver版本52.0.2和Python3.7以及标准的Ubuntu16.04Docker环境。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49643
 
1563 次点击  
文章 [ 2 ]  |  最新文章 5 年前
C. Peck
Reply   •   1 楼
C. Peck    6 年前

您不需要将代理设置为具有期望的功能,而不是在FirefoxProfile中吗?如下所示。

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.proxy import Proxy

proxy_to_use= "xxx.xxx.xxx.xxx"
desired_capability = webdriver.DesiredCapabilities.FIREFOX
desired_capability['proxy'] = {
    'proxyType': "manual",
    'httpProxy': proxy_to_use,
    'ftpProxy': proxy_to_use,
    'sslProxy': proxy_to_use
        }
 browser = webdriver.Firefox(capabilities=desired_capability)
 browser.get(“http://www.whatsmyip.org”)
James
Reply   •   2 楼
James    6 年前

我通过在Windows级别迭代代理而不是用硒来解决这个问题。

通过PUTTY以编程方式重新配置SSH连接,这为整个会话创建了一个隧道。更先进的设置,但更可靠。

我使用类似AppRobotic的工具,它具有紧密的Windows集成,但是任何好的宏或RPA产品都应该这样做。我使用带有Selenium的Python绑定,但使用VBScript更新Windows配置。

用Python编写的主AppRobotic脚本可以在每次迭代中运行proxy config update脚本,同时自动化其他应用程序,例如遍历Excel或记事本行并在浏览器中执行某些操作,因为VBScript脚本可以被视为单独的“宏”。