我認爲使用PhantomJS將是最簡單的。不需要node.js.
你可以結合examples/scandir.js
和examples/phantomwebintro.js
來得到你想要的。
var system = require('system');
var fs = require('fs');
if (system.args.length !== 2) {
console.log("Usage: phantomjs scandir.js DIRECTORY_TO_SCAN");
phantom.exit(1);
}
function scanDirectory(path, cb) {
if (fs.exists(path) && fs.isFile(path)) {
cb(path);
} else if (fs.isDirectory(path)) {
fs.list(path).forEach(function (e) {
if (e !== "." && e !== "..") {
scanDirectory(path + '/' + e, cb);
}
});
}
}
function parsePage(path) {
var page = require('webpage').create();
page.open(path, function(status) {
if (status === "success") {
page.includeJs("http://code.jquery.com/jquery-latest.js", function() {
var images = page.evaluate(function() {
var images = [];
$('img').each(function() {
images.push({ src: $(this).attr('src'), pos: $(this).position() });
});
return images;
});
console.log(images);
});
}
});
}
scanDirectory(system.args[1], parsePage);
這個腳本(phantomjs img.js kittens
)將掃描文件的目錄,加載該目錄中的所有文件(和子目錄,你可以修改scanDirectory
這種行爲),並發現該網頁上的所有<img>
標籤,並返回一個數組他們的src
屬性和.position()
。
花了我大約20分鐘纔得到這個工作,所以我認爲這是最簡單的方法。
來源
2013-03-06 21:50:29
mak
「座標」是什麼意思?你的意思是圖像大小? – Paul 2013-03-06 21:07:36
例如,圖像是否位於左上方? (x = 0,y = 0)或中間某處(x = 555,y = 424)。我需要知道圖像的x,y座標相對於頁面的其餘部分。 – jpgrace 2013-03-06 21:18:39