版本
无账号密码使用 Selenium 实现 HTTP 代理
- 最近一个朋友私聊了我一个问题,Selenium 如何使用代理 IP 进行爬虫,我心想这不是很简单,马上让 GPT 帮忙写一个:
![让 GPT 帮我写一个](https://img-blog.csdnimg.cn/img_convert/5113e6c5d757b61f89c4e8732d35172a.webp?x-oss-process=image/format,png)
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
# 设置代理IP
proxy_ip = "your_proxy_ip"
proxy_port = "your_proxy_port"
# 设置代理
proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = f"{proxy_ip}:{proxy_port}"
proxy.ssl_proxy = f"{proxy_ip}:{proxy_port}"
# 配置浏览器选项
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://{}:{}'.format(proxy_ip, proxy_port))
# 启动浏览器
driver = webdriver.Chrome(executable_path='path/to/chromedriver', options=chrome_options)
# 访问百度官网
driver.get('https://www.baidu.com')
# 在这里执行你的操作,比如查找元素、输入搜索关键词等
# 关闭浏览器
driver.quit()
- GPT 提供的代码有时候并不准确,需要简单修改一下,运行成功:
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# 设置代理IP
proxy_ip = "127.0.0.1"
proxy_port = "1080"
# 配置浏览器选项
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://{}:{}'.format(proxy_ip, proxy_port))
# 启动浏览器
chrome_service = Service("./chromedriver.exe")
driver = webdriver.Chrome(service=chrome_service, options=chrome_options)
# 访问百度官网
driver.get('https://www.baidu.com')
# 在这里执行你的操作,比如查找元素、输入搜索关键词等
time.sleep(30)
# 关闭浏览器
driver.quit()
![无账号密码 Selenium 代理](https://img-blog.csdnimg.cn/img_convert/766a34dd8d4da96c16b76d7fe2ce9975.webp?x-oss-process=image/format,png)
万万没想到加上账号密码会难度升级 + N
- 代码提供给朋友后,他突然回了一句,我的代理 IP 有账号密码,我心想这不简单,加上账号密码不就行了,然后我又转头把任务交给了 GPT,GPT 又给我提供了一份代码(下面的代码经过微调,还是上面的问题):
GPT 提供的带账号密码的 HTTP 代理解决方案
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.proxy import Proxy, ProxyType
# 设置代理IP
proxy_ip = "your_proxy_ip"
proxy_port = "your_proxy_port"
proxy_username = "your_proxy_username"
proxy_password = "your_proxy_password"
# 设置代理
proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = f"{proxy_ip}:{proxy_port}"
# 配置代理的认证信息
capabilities = webdriver.DesiredCapabilities.CHROME.copy()
proxy_auth = f"{proxy_userna