问一个代理的实现

14次阅读

共计 421 个字符,预计需要花费 2 分钟才能阅读完成。

想用 selenium 做一个爬虫,为了绕开访问限制,使用 ip 池。同时为了效率,selenium 的 chrome instance 打算复用,所以基本的架构是

graph LR
selenium-->mitmproxy-->proxypool-->webserver

mitmproxy 会拦截 request 请求,当请求 url 满足条件时,将上游的代理设置从 proxypool 里取得的代理。当代理失效的时候,调用 proxypool refresh 就可以用了。

selenium 设置代理为 mitmproxy 所对应的地址,这样就不需要每次访问的时候重新打开一个 chrome instance。

有几个问题没有办法实现

  1. mitmproxy 对 https 支持好像不能 connect,导致 https 网站访问会有证书问题,如何像 squid 那样,支持 https connect 操作
  2. https 协议也能跳转到 proxypool

或者还有其他的代理软件可以支持动态的修改 upstream server。

正文完
 0