Twisted模块

from twisted.web.client import getPage, defer
from twisted.internet import reactor

def callback(contents):
    print(contents)

url_list = ['http://www.bing.com', 'http://www.baidu.com', ]

for url in url_list:
    deferred = getPage(bytes(url, encoding='utf8'))
    deferred.addCallback(callback)

reactor.run()

事件执行只有开始没有结束,因此需要规定某个目标任务的完成来终止事件

from twisted.web.client import getPage, defer
from twisted.internet import reactor

def callback(contents):
    print(contents)
url_list = ['http://www.bing.com', 'http://www.baidu.com', ]

_active = []

for url in url_list:
    d = getPage(bytes(url, encoding='utf8'))
    d.addCallback(callback)
    _active.append(d)

def all_done(arg):
    reactor.stop()

xx = defer.DeferredList(_active)
xx.addBoth(all_done)

reactor.run()

将defer对象加入一个列表_active中以此来用defer方法DeferredList来监听该列表中的任务是否完成回调,在执行回调之后addBoth(表示无论错误还是成功都会执行该方法设置的函数)

 

posted @ 2017-11-14 19:59  吃柚子的小白  阅读(311)  评论(0编辑  收藏  举报