graph LR
selenium-->mitmproxy-->proxypool-->webserver
mitmproxy 会拦截 request 请求,当请求 url 满足条件时,将上游的代理设置从 proxypool 里取得的代理。当代理失效的时候,调用 proxypool refresh 就可以用了。
selenium 设置代理为 mitmproxy 所对应的地址,这样就不需要每次访问的时候重新打开一个 chrome instance 。
有几个问题没有办法实现
[ol]
[/ol]
或者还有其他的代理软件可以支持动态的修改 upstream server 。