Aşağıdaki kod, içerik filtreleme için bir HTTP proxy'dir. Mevcut sitenin URL'sini sunucuya gönderdiği ve işlediği ve yanıt verdiği GET'i kullanır. VERY, ÇOK, ÇOK yavaş çalışır. Daha hızlı nasıl yapılacağı hakkında bir fikrin var mı?Bu Twisted Python Proxy nasıl daha hızlı yapılır?
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()
Herkes daha hızlı bu çalışmasını sağlamak için nasıl bir fikrin var: Burada
kodudur? Ya da yazmanın daha iyi bir yolu?
Üzgünüm, sadece sunucunun yanıt vermekte yavaş olduğunu söylüyorsunuz. Neyi kaçırıyorum? – mjhm
Evet, öyleyim. ÇOK, ÇOK, ÇOK yavaş çalışır. Daha hızlı çalışmasını sağlamak için bir yol bulmaya çalışıyorum. Googling oldum ama şu ana kadar hiçbir şey yok. Başka birinin daha iyi bir yol bildiğini görmek için buraya yollayacağımı düşündüm. Diğer kütüphaneleri veya modülleri kullanarak yazabilirim, ancak Twisted, dokümanlar ve örnekler bulabildiğim tek şey. –
Cevabı kabul etmek ister misiniz? :) –