Ich richte einen HTTP-Proxy in Python ein, um Web-Inhalte zu filtern. Ich habe eine good example auf StackOverflow gefunden, die genau dies unter Verwendung Twisted tut. Ich benötige jedoch einen anderen Proxy, um auf das Web zuzugreifen. Daher muss der Proxy Anforderungen an einen anderen Proxy weiterleiten. Was ist der beste Weg, dies mit twisted.web.proxy zu tun?Twisted - Weiterleiten von Proxy-Anforderungen an einen anderen Proxy (Proxy-Kette)
Ich fand a related question, die etwas ähnliches benötigt, aber von einem Reverse-Proxy.
Meine beste Schätzung ist, dass es möglich sein sollte, einen verketteten Proxy zu erstellen, indem Sie ändern oder ableiten, um eine Verbindung zum nächsten Proxy herzustellen, anstatt direkt mit dem Web zu verbinden. Leider habe ich keine Hinweise in der Dokumentation dazu gefunden.
Der Code, den ich bisher haben (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()