1
NodeJS新手在這裏。我正在嘗試使用NodeJS和PhamtomJS解析html(phantomjs-node)。當我從瀏覽器控制檯運行JQuery $("[class*='question-summary']")
時,它會返回一個數組。但是,我無法在nodejs上做同樣的事情。我猜stackoverflow有JQuery,所以我不需要使用includeJs
加載jquery。其實,當我運行NodeJs + PhantomJs從page.evaluate方法返回JQuery結果
這裏是我正在運行的nodejs示例;
var phantom = require('phantom');
async function getHtml() {
const instance = await phantom.create([
"--load-images=false"
]);
const page = await instance.createPage();
await page.on("onResourceRequested", function(requestData) {
console.info('Requesting', requestData.url)
});
const status = await page.open('http://stackoverflow.com');
console.log("STATUS: " + status);
const content = await page.property('content');
console.log(content);
var result = await page.evaluate(function(content) {
return $("[class*='question-summary']");
});
console.log("Result : " + result);
await instance.exit();
};
getHtml();
我用命令>node --harmony-async-await phantomTest.js
運行。將內容打印到控制檯後,該過程會卡住。
我想node.js是一個硬性要求?只是在PhantomJS中這樣做會簡單得多。 – Vaviloff
這不是一個難的要求,但我會嘗試執行一個cron作業來解析和保存一些數據。我想學習nodejs。 – quartaela
我只是想說明你可以爲PhantomJS編寫腳本,從cron運行它們,它們會更簡單,沒有異步/等待/承諾的東西。 – Vaviloff