Mã bên dưới là proxy HTTP để lọc nội dung. Nó sử dụng GET để gửi URL của trang web hiện tại đến máy chủ, nơi nó xử lý nó và phản hồi. Nó chạy VERY, VERY, VERY chậm. Bất kỳ ý tưởng về cách làm cho nó nhanh hơn?Làm thế nào để làm cho Proxy Python xoắn nhanh hơn?
Đây là mã:
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()
Bất cứ ai có bất cứ ý tưởng về cách làm cho hoạt động này nhanh hơn? Hoặc thậm chí là một cách tốt hơn để viết nó?
Tôi xin lỗi, có vẻ như bạn đang nói rằng máy chủ phản hồi chậm. Tôi đang thiếu gì? – mjhm
Có, tôi. Nó chạy RẤT, RẤT, RẤT chậm. Tôi đang cố gắng tìm ra cách để nó chạy nhanh hơn. Tôi đã được Googling, nhưng không có gì cho đến nay. Tôi nghĩ tôi sẽ đăng nó ở đây để xem liệu có ai biết cách nào tốt hơn không. Tôi sẽ viết nó bằng cách sử dụng các thư viện hoặc mô-đun khác, nhưng Twisted là người duy nhất tôi có thể tìm thấy tài liệu và các ví dụ trên. –
Bạn có muốn chấp nhận câu trả lời không? :) –