• 请不要在回答技术问题时复制粘贴 AI 生成的内容
1995bugme
V2EX  ›  程序员

使用 selenium 爬取数据时,如何在当前已经创建的浏览器实例上,动态切换代理 ip?

  •  
  •   1995bugme · Apr 7, 2024 · 3193 views
    This topic created in 941 days ago, the information mentioned may be changed or developed.
    请教一个问题,使用 java 、selenium 、chromedriver 爬取数据的时候,如何在当前已经打开的浏览器实例上,动态切换代理 ip ?之前采取的措施是,如果要切换代理 ip ,那就关闭浏览器实例再重新创建一个,但是这种反复关闭浏览器实例再创建的操作,开销比较大。有什么办法能够在不关闭浏览器实例的情况下,动态切换代理 ip 么?
    13 replies  •  2024-04-08 17:31:04 +08:00
    binsys
    binsys
    Apr 7, 2024
    1
    再套一层代理,然后去控制代理切换代理。
    binsys
    binsys
    Apr 7, 2024
    2
    浏览器-代理 A-代理 B-互联网
    代理 A 提供给浏览器的地址不变,比如 127.0.0.1:8008
    代理 B 自己切换 upstream
    hanssx
    hanssx
    Apr 7, 2024
    3
    插件
    macaodoll
    macaodoll
    Apr 7, 2024 via Android
    4
    自建隧道?
    ik
    ik
    Apr 7, 2024 via iPhone
    5
    轮训的话随便一个四层代理都可以, 需要制定切换可以用 clash ,调 api 切
    defaw
    defaw
    Apr 7, 2024
    6
    http 代理,在 http 代理里面换
    LeegoYih
    LeegoYih
    Apr 7, 2024
    7
    我用 chrome 没解决,最后买了个贵的池。
    我看有解决方案说是 firefox 可以调 api 切换,没试过。
    0o0O0o0O0o
    0o0O0o0O0o
    Apr 7, 2024 via iPhone
    8
    同 #1
    jettzhang
    jettzhang
    Apr 7, 2024
    9
    SwitchyOmega 插件
    pagxir
    pagxir
    Apr 7, 2024 via Android
    10
    代理类型都一样的话,用 iptables 也可以。把旧 nat 规则删掉,然后换新的,这样旧的不会马上断,新建的会用新的代理。
    ClericPy
    ClericPy
    Apr 7, 2024
    11
    隧道代理. 不过你得主动断开旧连接, 在同一次连接时候隧道代理不切换 IP. 我是自己写的隧道代理所以随时想切换就切换

    至于关闭浏览器实例的问题, 可以考虑一下隐私模式, Chrome cdp 通过新建一个个 Browser Context 的时候指定特定的 proxyServer, 这个开销比较小, 而且开一大堆浏览器上下文关闭时候会清理垃圾文件, 不会 CDP 的话就没办法了
    1995bugme
    1995bugme
    OP
    Apr 8, 2024
    13
    多谢各位的回复,临时被指派爬取数据,在这方面自己并不擅长,各位提到的这些技术点,我还需要消化一下。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5229 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 03:40 · PVG 11:40 · LAX 19:40 · JFK 22:40
    ♥ Do have faith in what you're doing.