我用这个脚本Python的HTTP请求
from twisted.internet import reactor, threads
from urlparse import urlparse
import httplib
import itertools
concurrent = 200
finished=itertools.count(1)
reactor.suggestThreadPoolSize(concurrent)
def getStatus(ourl):
url = urlparse(ourl)
conn = httplib.HTTPConnection(url.netloc)
conn.request("HEAD", url.path)
res = conn.getresponse()
return res.status
def processResponse(response,url):
print response, url
processedOne()
def processError(error,url):
print "error", url#, error
processedOne()
def processedOne():
if finished.next()==added:
reactor.stop()
def addTask(url):
req = threads.deferToThread(getStatus, url)
req.addCallback(processResponse, url)
req.addErrback(processError, url)
added=0
for url in open('urllist.txt'):
added+=1
addTask(url.strip())
try:
reactor.run()
except KeyboardInterrupt:
reactor.stop()
当我尝试运行脚本$蟒蛇test.py
它只是打印网址不做卷曲或发送HTTP请求..
我怎么能发送的每一个
感谢
哪里都是你的函数添加到'反应堆'? – dg123
@ user1436026你能解释更多请 – SimpleojbC
为什么你在这里使用'httplib'而不是Twisted的HTTP代码?或者,如果你想为每个连接使用'httplib'和一个线程,你为什么要使用Twisted并启动一个反应堆? – abarnert