from twisted.web.client import Agent
from twisted.internet import reactor, defer
def get_headers(response, url):
'''Extract a dict of headers from the response'''
return url, dict(response.headers.getAllRawHeaders())
def got_everything(all_headers):
'''print results and end program'''
print dict(all_headers)
reactor.stop()
agent = Agent(reactor)
urls = (line.strip() for line in open('urls.txt'))
reqs = [agent.request('HEAD', url).addCallback(get_headers, url) for url in urls if url]
defer.gatherResults(reqs).addCallback(got_everything)
reactor.run()
我将使用Python内置的httplib和线程模块。我看不需要第三方模块。在
解决方案是使用一点函数编程将一些附加信息“粘贴”到回调函数中。在
functools.partial
我知道你在问pycurl,但我发现它太难用了,而且不太和谐。API很奇怪。在
下面是一个twisted示例:
此示例异步启动所有请求,并收集所有结果。以下是具有3个URL的文件的输出:
^{pr2}$相关问题 更多 >
编程相关推荐