0
我必須瀏覽網站上的所有頁面,並檢查每個頁面上的元素。這必須以遞歸方式進行,我選擇使用PhantomJS來完成。所以,我基本上有這樣/這樣的代碼在main.js
:用phantomjs遞歸地瀏覽網頁
var page = require('webpage').create();
var allUrls = [];
var pageCheck = function(url) {
page.open(url, function(success) {
page.evaluate(function(allUrls, nextPage) {
// crawl all links, and if they are from this site ..
// add them to the allUrls array ..
// then check the page for the element ..
// and go to next eventual page ..
setTimeout(nextPage, 250);
}, allUrls, nextPage);
});
};
var nextPage = function() {
var nextUrl = allUrls.unshift();
if(nextUrl) pageCheck(nextUrl);
};
pageCheck('http://example.com/');
,我調用此方法phantomjs main.js
。
但我看到消息「無法找到變量...」。當我清除所有 - 我現在看到Can't find variable: pageCheck
我該怎麼做? ... PhantomJS示波器的所有這些東西是什麼? ...
的[找不到變量:網頁中PhantomJS]可能的複製(http://stackoverflow.com/questions/32954786/cant-find-variable- page-in-phantomjs) –
感謝您的快速回復,但是我在第一次訪問'allUrls'和'nextPage'時無法訪問'page.evaluate'內容。但我通過將它們作爲參數傳遞給'page.evaluate'來解決這些問題。問題是這裏有兩個功能,而且他們似乎沒有看到對方? ......或者至少這就是它對我來說...... –
正如我在回答結束時所說的,你不能將函數傳遞到頁面上下文中。我的答案的第一部分提供了一種適用於您的案例的解決方法。 –