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

259 天前
 1995bugme
请教一个问题,使用 java 、selenium 、chromedriver 爬取数据的时候,如何在当前已经打开的浏览器实例上,动态切换代理 ip ?之前采取的措施是,如果要切换代理 ip ,那就关闭浏览器实例再重新创建一个,但是这种反复关闭浏览器实例再创建的操作,开销比较大。有什么办法能够在不关闭浏览器实例的情况下,动态切换代理 ip 么?
1825 次点击
所在节点    程序员
13 条回复
binsys
259 天前
再套一层代理,然后去控制代理切换代理。
binsys
259 天前
浏览器-代理 A-代理 B-互联网
代理 A 提供给浏览器的地址不变,比如 127.0.0.1:8008
代理 B 自己切换 upstream
hanssx
259 天前
插件
macaodoll
259 天前
自建隧道?
ik
259 天前
轮训的话随便一个四层代理都可以, 需要制定切换可以用 clash ,调 api 切
defaw
259 天前
http 代理,在 http 代理里面换
LeegoYih
259 天前
我用 chrome 没解决,最后买了个贵的池。
我看有解决方案说是 firefox 可以调 api 切换,没试过。
0o0O0o0O0o
259 天前
同 #1
jettzhang
259 天前
SwitchyOmega 插件
pagxir
259 天前
代理类型都一样的话,用 iptables 也可以。把旧 nat 规则删掉,然后换新的,这样旧的不会马上断,新建的会用新的代理。
ClericPy
259 天前
隧道代理. 不过你得主动断开旧连接, 在同一次连接时候隧道代理不切换 IP. 我是自己写的隧道代理所以随时想切换就切换

至于关闭浏览器实例的问题, 可以考虑一下隐私模式, Chrome cdp 通过新建一个个 Browser Context 的时候指定特定的 proxyServer, 这个开销比较小, 而且开一大堆浏览器上下文关闭时候会清理垃圾文件, 不会 CDP 的话就没办法了
wangyongbo
259 天前
1995bugme
258 天前
多谢各位的回复,临时被指派爬取数据,在这方面自己并不擅长,各位提到的这些技术点,我还需要消化一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1030344

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX