私はwgetを使用して複数の画像をダウンロードしていますが、空白の場合はファイルをrmするためにファイルを渡す機能を使用したいと思います。私の質問は、画像を次の機能に転送する方法です。
rmEmpty ()
{
if ! [ -s "$1" ]
then
rm "$1";
fi
}
私が画像をダウンロードする方法は次のとおりです。
wget -q -O- http://www.mtgsalvation.com/forums/creativity/artwork/340782-official-digital-rendering-thread?page=$i |
sed -n '{/forum-post-body-content/,/p-comment-notes/p}' |
grep -Po 'src="\K[^"]+' | xargs wget -q -T 6 -t 1
だから可能でxargs wget | rmEmpty()
あれば結局似たようなものが欲しいです。
ベストアンサー1
適切なHTMLパーサーを使用してください。真珠:
#!/usr/bin/env perl
use strict; use warnings;
use WWW::Mechanize;
use HTML::TreeBuilder::XPath;
my $m = WWW::Mechanize->new( autocheck => 1 );
$m->get("http://www.mtgsalvation.com/forums/creativity/artwork/340782-official-digital-rendering-thread?page=1");
my $tree = HTML::TreeBuilder::XPath->new_from_content( $m->content );
my @imgs = $tree->findvalues( '//div[@class="j-comment-body-container p-comment-body forum-post-body-content"]//img/@src' );
`wget -i - -q -T 6 -t 1 @imgs; find . -maxdepth 1 -empty -type f -delete`;