[英]AttributeError: 'bytes' object has no attribute 'getPage'
[英]getPage inside of deferred object printing?
我想創建一個對特定網址執行getPage
的回調,並在操作完成后將其打印出來。 當前,當我打印d
或page
(請參見下面的代碼),我得到了對延遲對象和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
的非常詳盡的教程 ,以及一些諸如ProxyAgent
, RedirectAgent
, CookieAgent
和ContentDecoderAgent
伴隨類。
但是,首先,您可能想熟悉有關如何使用Deferred
的文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.