【发布时间】:2023-12-05 07:30:01
【问题描述】:
下面的代码是用于内容过滤的 HTTP 代理。它使用 GET 将当前站点的 URL 发送到服务器,在服务器上处理它并做出响应。它运行非常、非常、非常慢。关于如何使其更快的任何想法?
代码如下:
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()
有人对如何使这个运行更快有任何想法吗?或者更好的写法?
【问题讨论】:
-
对不起,听起来您只是在说服务器响应缓慢。我错过了什么?
-
是的,我是。它运行得非常、非常、非常慢。我正在想办法让它跑得更快。我一直在谷歌搜索,但到目前为止还没有。我想我会把它贴在这里看看是否有其他人知道更好的方法。我会使用其他库或模块来编写它,但 Twisted 是我唯一能找到文档和示例的。
-
您愿意接受答案吗? :)