当前位置: 首页 > news >正文

在 DrissionPage 中设置代理

DrissionPage 基于 Chromium,可以通过ChromiumOptions来设置代理。以下是几种设置代理的方法:

方法一:基础代理设置(HTTP/HTTPS)

fromDrissionPageimportChromiumfromDrissionPage.commonimportChromiumOptions# 创建 ChromiumOptions 对象co=ChromiumOptions()# 设置代理服务器地址和端口co.set_proxy('http://127.0.0.1:1080')# 替换为你的代理地址# 创建浏览器实例并传入选项browser=Chromium(co)# 打开页面测试browser.get('https://httpbin.org/ip')print(browser.html)

方法二:带认证的代理设置

fromDrissionPageimportChromiumfromDrissionPage.commonimportChromiumOptions co=ChromiumOptions()# 设置带用户名和密码的代理# 格式: http://username:password@proxy_host:proxy_portproxy_url='http://username:password@127.0.0.1:1080'co.set_proxy(proxy_url)browser=Chromium(co)browser.get('https://httpbin.org/ip')

方法三:SOCKS 代理设置

fromDrissionPageimportChromiumfromDrissionPage.commonimportChromiumOptions co=ChromiumOptions()# SOCKS5 代理co.set_proxy('socks5://127.0.0.1:1080')# SOCKS4 代理# co.set_proxy('socks4://127.0.0.1:1080')browser=Chromium(co)browser.get('https://httpbin.org/ip')

方法四:使用代理列表随机选择

fromDrissionPageimportChromiumfromDrissionPage.commonimportChromiumOptionsimportrandom# 代理列表proxies=['http://127.0.0.1:1080','http://127.0.0.1:1081','http://127.0.0.1:1082','socks5://127.0.0.1:1083']# 随机选择一个代理proxy=random.choice(proxies)co=ChromiumOptions()co.set_proxy(proxy)browser=Chromium(co)browser.get('https://httpbin.org/ip')

方法五:验证代理是否生效

fromDrissionPageimportChromiumfromDrissionPage.commonimportChromiumOptions co=ChromiumOptions()co.set_proxy('http://127.0.0.1:1080')# 替换为你的代理# 可选:设置无头模式# co.headless = Truebrowser=Chromium(co)# 访问 IP 检测网站browser.get('https://httpbin.org/ip')# 打印返回的 IP 地址print("当前 IP:",browser.ele('body').text)# 或者获取完整响应print("完整响应:",browser.html)browser.quit()

完整示例:带错误处理

fromDrissionPageimportChromiumfromDrissionPage.commonimportChromiumOptionsimporttimedefcreate_browser_with_proxy(proxy_url):"""创建带代理的浏览器实例"""try:co=ChromiumOptions()co.set_proxy(proxy_url)# 可选配置co.headless=False# 显示浏览器窗口co.incognito=True# 隐身模式browser=Chromium(co)returnbrowserexceptExceptionase:print(f"创建浏览器失败:{e}")returnNone# 使用示例proxy='http://127.0.0.1:1080'# 替换为你的代理browser=create_browser_with_proxy(proxy)ifbrowser:try:# 测试代理browser.get('https://httpbin.org/ip',timeout=30)time.sleep(2)print("代理连接成功")print("当前 IP:",browser.ele('body').text)# 你的爬虫逻辑...exceptExceptionase:print(f"访问失败:{e}")finally:browser.quit()

注意事项

  1. 代理格式

    • HTTP/HTTPS:http://host:porthttp://user:pass@host:port
    • SOCKS5:socks5://host:portsocks5://user:pass@host:port
    • SOCKS4:socks4://host:port
  2. 代理类型:确保你的代理服务器支持相应的协议

  3. 连接超时:可以设置超时参数避免长时间等待

    co.set_proxy('http://127.0.0.1:1080',timeout=10)
  4. 代理认证:如果代理需要认证,确保用户名和密码正确编码(特殊字符需要 URL 编码)

  5. 验证代理:使用https://httpbin.org/iphttps://ipinfo.io/json等网站验证代理是否生效

希望这些示例能帮助你在 DrissionPage 中成功设置代理!

http://www.jsqmd.com/news/403169/

相关文章:

  • 淘宝智能客服技术解析:从架构设计到高并发场景优化
  • 2026正规TSP浓度检测仪生产企业推荐榜单深度解析 - 品牌推荐大师1
  • Blazor 生命周期 测试
  • 2026年 Claude Pro 国内充值全攻略:告别封号与被拒,实测最稳代充方案
  • 2026噪音检测设备选购大盘点:分贝仪、声级计、监测系统全覆盖 - 品牌推荐大师1
  • python基于flask基于微信小程序的英语单词词汇学习系统 (编号:49923290)
  • 2026最新最新PVC发泡板生产商top10推荐!环保/家装/外贸/工程/商业场景优质服务商权威榜单发布 - 品牌推荐2026
  • python基于flask基于微信小程序的社区养老服务系统(编号:58905211)(1)
  • 2026最新PVC发泡板生产商top10推荐!环保/家装/外贸/工程/商业场景优质服务商权威榜单发布 - 品牌推荐2026
  • python基于flask基于微信小程序的校园二手交易平台(编号:06863244)(1)
  • python基于flask基于微信小程序的校园大学生生活学习服务平台(编号:27488143)
  • python基于flask基于微信小程序的大学生心理音乐治疗的设计与实现(编号:54964396)
  • python基于flask基于微信小程序的学生选课成绩评估系统 学业导师制设计与实现(编号:84033202)
  • 【JAVA算法|hot100】哈希类型题目详解笔记
  • 人声伴奏分离工具5款实测精选
  • Chatbot自然语言转SQL的底层实现与工程实践
  • AI智能客服搭建实战:从技术选型到生产环境部署
  • 基于AI的智能客服系统:从架构设计到生产环境部署的实战指南
  • Uniapp微信小程序对接腾讯云智能客服的AI辅助开发实践
  • AI辅助开发中的Chatbot切片策略:高并发场景下的实现与优化
  • 企业微信智能客服群聊回复的AI辅助开发实战:从架构设计到性能优化
  • Chatbot Arena排名深度解析:如何正确解读与实战应用
  • LangChain RAG 在智能客服中的实战应用与架构解析
  • ChatGPT Prompt Engineering实战指南:开发者如何构建高效AI辅助开发流程
  • Java AI智能客服项目实战:从架构设计到生产环境避坑指南
  • 客服智能体搭建实战:从架构设计到性能优化的全链路指南
  • AI辅助开发实战:扣子智能客服架构解析与性能优化指南
  • 基于Dify构建智能客服系统的架构设计与实战避坑指南
  • ChatGPT Code Interpreter 实战指南:从数据处理到自动化工作流
  • HarmonyOS应用开发实战(基础篇)Day09-《构建布局详解下》