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

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

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

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

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

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

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

© 2021 V2EX