如何通过 python 中的代理硒访问受国家限制的网站



我正在尝试通过硒访问一个网站,该网站在我居住的国家/地区被阻止。我在python中使用硒并使用代理来执行此操作。但是,我注意到一旦我检查打开的硒浏览器的IP,它就会显示我的真实IP,而不是代理。 这有点令人困惑,因为我设法通过以下驱动程序设置访问了这个网站一次,但它不再起作用了。

fp = webdriver.FirefoxProfile()
PROXY_PORT = config['DEFAULT']['PROXY_PORT']
PROXY_HOST = config['DEFAULT']['PROXY_HOST']
fp.set_preference('network.proxy.type', 0)
fp.set_preference('network.proxy.http', PROXY_HOST)
fp.set_preference('network.proxy.http_port', int(PROXY_PORT))
fp.set_preference('network.proxy.https', PROXY_HOST)
fp.set_preference('network.proxy.https_port', int(PROXY_PORT))
fp.set_preference('network.proxy.ssl', PROXY_HOST)
fp.set_preference('network.proxy.ssl_port', int(PROXY_PORT))
fp.set_preference('network.proxy.ftp', PROXY_HOST)
fp.set_preference('network.proxy.ftp_port', int(PROXY_PORT))
fp.set_preference('network.proxy.socks', PROXY_HOST)
fp.set_preference('network.proxy.socks_port', int(PROXY_PORT))
fp.set_preference("general.useragent.override", "whater_useragent")
fp.set_preference("general.useragent.override", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A")
fp.update_preferences()
driver = webdriver.Firefox(firefox_profile=fp)

现在,我正在尝试使用此方法分配代理,但它没有改变。

PROXY_PORT = config['DEFAULT']['PROXY_PORT']
PROXY_HOST = config['DEFAULT']['PROXY_HOST']
myProxy = PROXY_HOST + ':' + PROXY_PORT
proxy = webdriver.common.proxy.Proxy({'proxyType':webdriver.common.proxy.ProxyType.MANUAL,
'httpProxy':myProxy,
'ftpProxy':myProxy,
'sslProxy':myProxy})
driver = webdriver.Firefox(proxy=proxy)

我需要的是打开的火狐浏览器中的 IP 是代理的 IP。如何做到这一点?我不知道为什么它一开始有效,现在它没有了。请解释一下。

使用Chrome,非常简单:

options = webdriver.ChromeOptions()
options.add_argument('='.join(['--proxy-server', "http://localhost:8888/"]))

您也可以尝试使用插件/扩展来执行此操作。我在两种情况下都取得了成功:)

如果您需要代理服务器: https://github.com/ochen1/pyproxy

最新更新