Le code ci-dessous est un proxy HTTP pour le filtrage de contenu. Il utilise GET pour envoyer l'URL du site actuel au serveur, où il le traite et répond. Il fonctionne TRÈS, TRÈS, TRÈS lent. Des idées sur la façon de le rendre plus rapide?Comment rendre ce Twisted Python Proxy plus rapide?
Voici le code:
from twisted.internet import reactor
from twisted.web import http
from twisted.web.proxy import Proxy, ProxyRequest
from Tkinter import *
#import win32api
import urllib2
import urllib
import os
import webbrowser
cwd = os.path.abspath(sys.argv[0])[0]
proxies = {}
user = "zachb"
class BlockingProxyRequest(ProxyRequest):
def process(self):
params = {}
params['Location']= self.uri
params['User'] = user
params = urllib.urlencode(params)
req = urllib.urlopen("http://weblock.zbrowntechnology.info/ProgFiles/stats.php?%s" % params, proxies=proxies)
resp = req.read()
req.close()
if resp == "allow":
pass
else:
self.transport.write('''BLOCKED BY ADMIN!''')
self.transport.loseConnection()
ProxyRequest.process(self)
class BlockingProxy(Proxy):
requestFactory = BlockingProxyRequest
factory = http.HTTPFactory()
factory.protocol = BlockingProxy
reactor.listenTCP(8000, factory)
reactor.run()
Quelqu'un a des idées sur la façon de faire de cette course plus rapide? Ou même une meilleure façon de l'écrire?
Je suis désolé, il semble que vous disiez simplement que le serveur tarde à répondre. Qu'est-ce que je rate? – mjhm
Oui, je suis. Il court très, très, très lent. J'essaie de trouver un moyen de le faire fonctionner plus vite. J'ai été googling, mais rien pour l'instant. Je me suis dit que je l'afficherais ici pour voir si quelqu'un d'autre savait mieux. Je l'écrirais en utilisant d'autres bibliothèques ou modules, mais Twisted est le seul sur lequel je pourrais trouver des docs et des exemples. –
Voulez-vous accepter la réponse? :) –