簡體   English   中英

getPage內的延遲對象打印?

[英]getPage inside of deferred object printing?

我想創建一個對特定網址執行getPage的回調,並在操作完成后將其打印出來。 當前,當我打印dpage (請參見下面的代碼),我得到了對延遲對象和page內容的引用。

為什么延遲對象的存儲位置在打印page和打印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()

您應該使用的是較新的,更復雜的twisted.web.client.Agent而不是較舊的且受限制的getPage 幸運的是,您有一個關於如何使用Agent的非常詳盡的教程 ,以及一些諸如ProxyAgentRedirectAgentCookieAgentContentDecoderAgent伴隨類。

但是,首先,您可能想熟悉有關如何使用Deferred文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM