我有一個PHP腳本,它使用PhantomJS來抓取網頁並將抓取的數據插入到數據庫中。
目前,在PhantomJS的資源超時中,我取消了頁面的整個請求,並通過PHP再次請求整個頁面。
這裏是我的代碼:如何在PhantomJS資源超時重新發送請求?
page.settings.resourceTimeout = 5000; // 5 seconds
page.onResourceTimeout = function(e) {
console.log(e.errorCode); // it'll probably be 408
console.log(e.errorString); // it'll probably be 'Network timeout on resource'
console.log(e.url); // the url whose request timed out
phantom.exit(1);
};
我只想重新發送到超時資源的請求,而不是從頭再來請求整個頁面。 這可能嗎?
我一直在使用[Spiderling](https://github.com/OpenBuildings/spiderling)最近從PHP驅動PhantomJS。我想知道是否有一些事情可以確定依賴資源是否成功加載,以及它們不在哪裏,重新加載它們(我相信有一個JS加載器)。然而,正如Artjom所說,由於後來的腳本可能由於初始故障而失敗,因此您可能必須在故障發生後(包括)重新加載所有腳本。 – halfer