El siguiente código es un proxy HTTP para el filtrado de contenido. Utiliza GET para enviar la URL del sitio actual al servidor, donde lo procesa y responde. Funciona MUY, MUY, MUY lento. ¿Alguna idea sobre cómo hacerlo más rápido?¿Cómo hacer que este Twisted Python Proxy sea más rápido?
Aquí está el código:
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()
Alguien tiene alguna idea sobre cómo hacer que este funcione más rápido? O incluso una mejor manera de escribirlo?
Lo siento, parece que solo dice que el servidor responde lentamente. ¿Qué me estoy perdiendo? – mjhm
Sí, lo soy. Corre MUY, MUY, MUY lento. Estoy tratando de encontrar la forma de hacerlo funcionar más rápido. He estado buscando en Google, pero nada tan lejos. Pensé que lo publicaría aquí para ver si alguien más sabía una mejor manera. Lo escribiría utilizando otras bibliotecas o módulos, pero Twisted es el único en el que podría encontrar documentos y ejemplos. –
¿Desea aceptar la respuesta? :) –