我想创建一个回调,getPage
在特定的 url 上执行并在操作完成时将其打印出来。目前,当我打印d
或page
(参见下面的代码)时,我得到了对延迟对象与page
.
为什么延迟对象的内存位置在 printpage
和 print之间发生变化d
?
最终,我希望这个程序循环浏览我的 4 个网站的列表,为每个单独的连接创建回调,将它们关闭,并在它们准备好时打印每个页面。如果不是太多要求,这可以证明吗?
from twisted.web.client import getPage
from twisted.internet import reactor
from twisted.internet.defer import Deferred
def connect(url):
page = getPage(url)
print page
返回<Deferred object at 0x23dcc68>
。
print d
返回<Deferred object at 0x7f1bacacc3b0>
。
当前结果(以“http://www.example.com”为例):
d = Deferred()
d.addCallback(connect)
reactor.callWhenRunning(d.callback, 'http://www.example.com')
reactor.callLater(4, reactor.stop)
reactor.run()