Node.js 在目录中的每个HTML文件中查找图像的坐标?
我有一个带有类似图像标记的平面HTML文件库。我应该如何遍历所有这些,并在特定图像标记的页面上找到特定的x,y坐标 我认为我需要将每个页面呈现为一个图像(用我可以匹配的特定颜色替换我正在寻找的图像标记),或者我可以使用类似phantom.js的东西无头呈现页面,并以这种方式找到坐标(尽管我不知道这是否可行)。你觉得哪一个更容易 我更喜欢使用LAMP堆栈或Node.jsNode.js 在目录中的每个HTML文件中查找图像的坐标?,node.js,zend-framework,imagemagick,lamp,Node.js,Zend Framework,Imagemagick,Lamp,我有一个带有类似图像标记的平面HTML文件库。我应该如何遍历所有这些,并在特定图像标记的页面上找到特定的x,y坐标 我认为我需要将每个页面呈现为一个图像(用我可以匹配的特定颜色替换我正在寻找的图像标记),或者我可以使用类似phantom.js的东西无头呈现页面,并以这种方式找到坐标(尽管我不知道这是否可行)。你觉得哪一个更容易 我更喜欢使用LAMP堆栈或Node.js 谢谢 我认为使用PhantomJS将是最简单的。不需要node.js 您可以组合examples/scandir.js和exam
谢谢 我认为使用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
)将扫描目录中的文件,加载该目录中的每个文件(以及子目录,您可以在scanddirectory
中修改此行为),并查找所有属性和位置()
我花了大约20分钟的时间才完成,所以我认为这是最简单的方法。你说的“坐标”是什么意思?你是说图像的大小吗?例如,图像是否一直位于左上角?(x=0,y=0)或在中间某个地方(x=555,y=424)。我需要知道图像相对于页面其余部分的x,y坐标。