私は、Webコンテンツをフィルタするために、pythonでHTTPプロキシを設定しています。 StackOverflowでgood exampleが見つかりました。これは正確にはTwistedを使っています。しかし、Webにアクセスするには別のプロキシが必要です。したがって、プロキシは要求を別のプロキシに転送する必要があります。 twisted.web.proxyを使用してこれを行う最善の方法は何ですか?別のプロキシ(プロキシチェーン)へのツイストフォワーディングプロキシリクエスト
私はa related questionを見つけましたが、これに似たものが必要ですが、リバースプロキシです。
twisted.web.proxy.ProxyClient
を変更またはサブクラス化して、Webに直接接続するのではなく、次のプロキシに接続することによって、連鎖したプロキシを構築できるようにすることをお勧めします。残念ながら、私はこれを行う方法に関する文書に手がかりを見つけませんでした。
私は今のところ(cite)持っているコードは:
from twisted.python import log
from twisted.web import http, proxy
class ProxyClient(proxy.ProxyClient):
def handleResponsePart(self, buffer):
proxy.ProxyClient.handleResponsePart(self, buffer)
class ProxyClientFactory(proxy.ProxyClientFactory):
protocol = ProxyClient
class ProxyRequest(proxy.ProxyRequest):
protocols = dict(http=ProxyClientFactory)
class Proxy(proxy.Proxy):
requestFactory = ProxyRequest
class ProxyFactory(http.HTTPFactory):
protocol = Proxy
portstr = "tcp:8080:interface=localhost" # serve on localhost:8080
if __name__ == '__main__':
import sys
from twisted.internet import endpoints, reactor
log.startLogging(sys.stdout)
endpoint = endpoints.serverFromString(reactor, portstr)
d = endpoint.listen(ProxyFactory())
reactor.run()