Poniższy kod jest proxy HTTP do filtrowania treści. Używa polecenia GET do wysyłania adresu URL bieżącej witryny do serwera, gdzie przetwarza ją i odpowiada. Działa VERY, BARDZO, BARDZO wolno. Wszelkie pomysły, jak przyspieszyć działanie?Jak przyspieszyć ten Twisted Python Proxy?
Oto kod:
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()
Ktoś ma jakieś pomysły, jak zrobić to biegać szybciej? A może nawet lepszy sposób na napisanie?
Przykro mi, wygląda na to, że po prostu mówisz, że serwer nie odpowiada. Czego mi brakuje? – mjhm
Tak, jestem. Działa bardzo, bardzo, bardzo wolno. Próbuję wymyślić sposób, aby działał szybciej. Byłem Googlingiem, ale nic tak daleko. Pomyślałem, że opublikuję tutaj, żeby sprawdzić, czy ktoś inny zna lepszy sposób. Napisałbym to przy użyciu innych bibliotek lub modułów, ale Twisted jest jedynym, w którym mogę znaleźć dokumenty i przykłady. –
Czy chcesz zaakceptować odpowiedź? :) –