【发布时间】:2018-10-29 17:30:21
【问题描述】:
我用 Python 编写了一个简单的代理检查器。我有一个问题 - 如何加快速度?我尝试使用队列和线程,但它没有用。 如果可以使用线程库
代码:
import socks
red = "\033[1;31m"
green = "\033[1;32m"
yellow = "\033[1;33m"
blue = "\033[1;34m"
defaultcolor = "\033[0m"
linesinfile = len(open('proxy.txt', 'rU').readlines())
def proxygff():
global fp
with open('proxy.txt') as fp:
pff = fp.readline()
global cnt
cnt = 1
while pff:
global PROXYIP, PROXYPORT
PROXYIP, PROXYPORT = pff.split(":")
pff = fp.readline()
cnt = cnt + 1
checkmain()
def savetofile(proxy):
with open("proxywork.txt", 'a') as file:
file.write(proxy)
def checkmain():
try:
socks.setdefaultproxy(socks.SOCKS5, str(PROXYIP), int(PROXYPORT))
s = socks.socksocket()
s.settimeout(1)
s.connect(("google.com", 80))
print blue + "Proxy working! " + green + str(cnt) + defaultcolor + "/" + green + str(linesinfile)
proxy = PROXYIP + ":" + PROXYPORT
savetofile(proxy)
s.close()
except:
print red + "Proxy not working! " + green + str(cnt) + defaultcolor + "/" + green + str(linesinfile)
proxygff()
用 Python 2.7 编写
【问题讨论】:
-
引用迈克尔杰克逊的优化:“规则 1:不要这样做。规则 2(仅适用于专家)。不要这样做 - 也就是说,直到你完全清楚并且未优化的解决方案。” -- en.wikiquote.org/wiki/Michael_A._Jackson 如果您必须继续优化,请先获取分析器并测量您的代码花费时间的位置。
标签: python multithreading python-2.7