1

getPage特定の URLに対して実行するコールバックを作成し、操作が完了したときにそれを出力したいと思います。d現在、 or page(以下のコードを参照)を印刷すると、遅延オブジェクトと のコンテンツへの参照が取得されますpage

page遅延オブジェクトのメモリ位置が printと print で変わるのはなぜdですか?

最終的には、このプログラムで 4 つの Web サイトのリストを循環させ、個々の接続ごとにコールバックを作成し、それらをオフにして、準備ができたら各ページを印刷するようにしたいと考えています。質問するのが多すぎない場合、これを実証できますか?

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()
4

1 に答える 1

0

おそらくtwisted.web.client.Agent、古くてやや制限されgetPageた . 幸運なことに、 の使用方法に関する非常に詳細なチュートリアルとAgentProxyAgent、 、RedirectAgentCookieAgent、および などの関連クラスがありContentDecoderAgentます。

ただし、最初に、 s の使用方法Deferredに関するドキュメントに精通することをお勧めします。

于 2012-11-20T05:04:00.577 に答える