以下代碼是用於內容過濾的HTTP代理。它使用GET將當前網站的URL發送到服務器,在那裏處理它並作出響應。它運行非常,非常,非常很慢。有關如何使其更快的任何想法?如何使這個Twisted Python Proxy更快?
下面是代碼:
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()
人對如何使這個運行速度更快的任何想法?或甚至更好的方式來寫它?
對不起,這聽起來像你只是說服務器響應緩慢。我錯過了什麼? – mjhm 2010-11-18 04:12:47
是的,我是。它運行非常非常非常緩慢。我試圖找出一種讓它跑得更快的方法。我一直在谷歌搜索,但沒有到目前爲止。我想我會在這裏發佈,看看是否有其他人知道更好的方法。我會使用其他庫或模塊編寫它,但Twisted是我能找到的唯一文檔和示例。 – 2010-11-18 04:25:34
你想接受答案嗎? :) – 2011-04-19 17:07:31