0
我嘗試使用Twisted Agent來實現HTTP客戶端並下載完整網頁的特定URL,最後測量該特定網站的加載時間頁。不幸的是,我所提供的代碼並沒有遵循HTML標籤中的內部URL,因此,從瀏覽器上的其他網站下載一些內容後需要10秒完成加載的網頁將不到一秒鐘完全加載在我的代碼中,這表明我的代碼不正確!即使我使用BrowserLikeRedirectAgent和RedirectAgent,結果也是一樣的。任何意見表示讚賞。扭曲的HTTP客戶端下載整個頁面並測量下載時間
def init_http(url):
userAgent = 'Twisted/%s (httpclient.py)' % (version.short(),)
agent = BrowserLikeRedirectAgent(Agent(reactor))
def response_time_calculator(test,t1):
end_time = time.time()
response_time = end_time - t1
print ("Got the Whole page in: ", response_time)
start_time = time.time()
d = agent.request(
b'GET', str(url), Headers({'user-agent': [userAgent]}))
def cbResponse(response):
if response.length is not UNKNOWN_LENGTH:
print('The response body will consist of', response.length, 'bytes.')
else:
print('The response body length is unknown.')
d = readBody(response)
d.addCallback(response_time_calculator, start_time)
return d
d.addCallback(cbResponse)
感謝time.clock,我只需要加載標籤,所以他們的地址不能反饋給Twisted代理,有關它的任何解決方法?我寧願不在我的代碼中實現一個新的庫,所以使用scrapy並不是我想要的,我尋找一種解決方案來單獨處理Twisted和Python。 – DeFoG
如果你不想使用scrapy,你需要做一些事情來解析html,找到img標籤,解釋它們的來源,併發出新的'Agent.request'調用。 Twisted中沒有任何內容會爲你做這個鏈接。 Twisted中也沒有真正的html解析器。在stdlib中有一個很老的,不太好的,但我真的推薦你使用'html5lib',它實現了html5規範,並且這是目前解析html的唯一理智方式。 –