2
私の目標は、ドキュメントからすべてのイメージを取得し、150x150pxより大きいすべてのイメージをローカルにダウンロードすることです。ドキュメントとストアからすべてのイメージをローカルに取得する方法
私は前の手順で得たURLからファイルを取得することにこだわっています。私は、コンソールから実行すると
...
var copyResult = fs.copy(imagesURLs[i], destFile);
...
それだけで(fs.copyにハングアップ)、エラーなし: - ここではバグのコード行(末尾の完全なコード)があります。
すべての適切な引数を設定しても、fs.copy()はリモートURLでは機能しません(--load-images = yes、--local-to-remote-url-access =はい)。私は正しいですか、私はcopy()に間違っていた何かがありますか?そして、Webkitのキャッシュから直接ファイルを取得する方法はありますか?
最新のphantomjsバージョンとubuntuサーバーを入手しました。
私は何か助けに感謝します。
完全なスクリプトコード:
if (phantom.args.length < 1 || phantom.args.length > 2)
{
console.log('Usage: phantomjs ' + phantom.scriptName + ' <URL>');
phantom.exit();
}
else
{
var page = new WebPage(),
address = phantom.args[0];
page.viewportSize = { width: 1200, height: 4000 };
page.open(address, function (status)
{
if (status === 'success')
{
var imagesURLs = page.evaluate(function()
{
var documentImages = [], imagesCount = document.images.length, index = 0;
while (index < imagesCount)
{
if ((document.images[index].width >= 150) && (document.images[index].height >= 150))
{
documentImages.push(document.images[index].src);
}
index++;
}
return documentImages;
});
var fs = require('fs');
for (var i in imagesURLs)
{
var fileName = imagesURLs[i].replace(/^.*[\\\/]/, '');
var destFile = '' + fs.workingDirectory + '/www/images/' + fileName;
console.log(destFile);
var copyResult = fs.copy(imagesURLs[i], destFile);
console.log(copyResult);
}
}
else
{
console.log('status: ' + status);
}
phantom.exit();
});
}
"for(; oPop.document.readyState!=" complete ";)"より新しいものです。 execCommandのアイデアをありがとう、私はそれから何か役に立つものを得ようとしています。 –