请教一个问题,使用 java 、selenium 、chromedriver 爬取数据的时候,如何在当前已经打开的浏览器实例上,动态切换代理 ip ?之前采取的措施是,如果要切换代理 ip ,那就关闭浏览器实例再重新创建一个,但是这种反复关闭浏览器实例再创建的操作,开销比较大。有什么办法能够在不关闭浏览器实例的情况下,动态切换代理 ip 么?
|
binsysApr 7, 2024
1
再套一层代理,然后去控制代理切换代理。
|
|
binsysApr 7, 2024
2
浏览器-代理 A-代理 B-互联网
代理 A 提供给浏览器的地址不变,比如 127.0.0.1:8008 代理 B 自己切换 upstream |
|
hanssxApr 7, 2024
3
插件
|
|
macaodollApr 7, 2024 via Android
4
自建隧道?
|
|
ikApr 7, 2024 via iPhone
5
轮训的话随便一个四层代理都可以, 需要制定切换可以用 clash ,调 api 切
|
|
defawApr 7, 2024
6
http 代理,在 http 代理里面换
|
|
LeegoYihApr 7, 2024
7
我用 chrome 没解决,最后买了个贵的池。
我看有解决方案说是 firefox 可以调 api 切换,没试过。 |
|
0o0O0o0O0oApr 7, 2024 via iPhone
8
同 #1
|
|
jettzhangApr 7, 2024
9
SwitchyOmega 插件
|
|
pagxirApr 7, 2024 via Android
10
代理类型都一样的话,用 iptables 也可以。把旧 nat 规则删掉,然后换新的,这样旧的不会马上断,新建的会用新的代理。
|
|
ClericPyApr 7, 2024
11
隧道代理. 不过你得主动断开旧连接, 在同一次连接时候隧道代理不切换 IP. 我是自己写的隧道代理所以随时想切换就切换
至于关闭浏览器实例的问题, 可以考虑一下隐私模式, Chrome cdp 通过新建一个个 Browser Context 的时候指定特定的 proxyServer, 这个开销比较小, 而且开一大堆浏览器上下文关闭时候会清理垃圾文件, 不会 CDP 的话就没办法了 |
|
wangyongboApr 7, 2024
12
|
|
13
多谢各位的回复,临时被指派爬取数据,在这方面自己并不擅长,各位提到的这些技术点,我还需要消化一下。
|