Python-Selenium使用Firefox调用Http代理IP的代码样例

温馨提示:
1. 样例为基于"终端IP"授权和"用户名+密码"授权方式使用Selenium+Firefox认证代理IP
2. 运行环境要求python2/3 + selenium + Firefox + geckodriver + Windows/Linux/macOS
3. 注意geckodriver版本要和Firefox版本对应
4. selenium不是python原生库,需要安装才能使用:pip install selenium;selenium 4.6版本开始,无需手动下载driver
5. selenium-wire不是python原生库,需要安装才能使用:pip install selenium-wire
6. ${geckodriver_path}:您本机geckodriver驱动存放路径,如:"C:\geckodriver.exe"
7. ${ip:port}:代理IP:端口号,代理IP和端口通过ipip9的API提取链接可获取

"终端IP"授权

from selenium import webdriver
import time

fp = webdriver.FirefoxProfile()
proxy = '${ip:port}'
ip, port = proxy.split(":")
port = int(port)

# 设置代理配置
fp.set_preference('network.proxy.type', 1)
fp.set_preference('network.proxy.http', ip)
fp.set_preference('network.proxy.http_port', port)
fp.set_preference('network.proxy.ssl', ip)
fp.set_preference('network.proxy.ssl_port', port)

driver = webdriver.Firefox(executable_path="${geckodriver_path}", firefox_profile=fp)
driver.get('https://example.com')

# 获取页面内容
print(driver.page_source)

# 延迟3秒后关闭当前窗口,如果是最后一个窗口则退出
time.sleep(3)
driver.close()

"用户名+密码"授权

import time

from seleniumwire import webdriver # pip install selenium-wire

username='username' # 请替换您的用户名和密码
password='password'
proxy_ip='168.168.168.168:8888' # 请替换您提取到的代理ip
options={
	'proxies'={
		"http":"http://username:[email protected]:12345,
		"https":http://username:[email protected]:12345
	}
}

driver=webdriver.Firefox(seleniumwire_options=options,executable_path="${geckodriver_path}")

driver.get('https://example.com')

# 获取页面内容
print(driver.page_source)

# 延迟3秒后关闭当前窗口如果是最后一个窗口则退出
time.sleep(3)
driver.close()