はよく私は少し午前
- を投稿intailの終わりに更新を参照してくださいconfued私はウェブサイトからいくつかのサムネイルを持っている必要があり
.... perlのコードallwayはビットabracadabaに見える初心者のperl-友人であること;-) ...認めざるを得ないが、私はwgetコマンドを使用しようとしました - しかし、それは私のためには機能しません。なぜなら、何が必要なレンダリング機能が必要なのです。私は、各行に1つずつ、ファイルに保存された2,500のURLのリストを持っています。次に、ファイルを開く、行を読み込んだり、Webサイトを取得したり、画像を小さなサムネイルとして保存したりするスクリプトが必要です。よく私は多くのWebサイト(2500)を持っているので、私は結果の命名について私の心を作り上げなければならない。
http://www.unifr.ch/sfm
http://www.zug.phz.ch
http://www.schwyz.phz.ch
http://www.luzern.phz.ch
http://www.schwyz.phz.ch
http://www.phvs.ch
http://www.phtg.ch
http://www.phsg.ch
http://www.phsh.ch
http://www.phr.ch
http://www.hepfr.ch/
http://www.phbern.ch
これまでのところは 良い、よく私は私が今、次の結果を得る。この
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize::Firefox;
my $mech = new WWW::Mechanize::Firefox();
open my $urls, '<', 'urls.txt' or die $!;
while (<$urls>) {
chomp;
next unless /^http/i;
print "$_\n";
$mech->get($_);
my $png = $mech->content_as_png;
my $name = $_;
$name =~ s#^http://##i;
$name =~ s#/##g;
$name =~ s/\s+\z//;
$name =~ s/\A\s+//;
$name =~ s/^www\.//;
$name .= ".png";
open(my $out, '>', "/images/$name");
binmode $out;
print $out $png;
close $out;
sleep 5;
}
ような何かをしようと考えて.... が出... と限り来るものを参照してください私が見ることができるように - 画像 "フォルダに格納されている画像はありません
なぜですか?
[email protected]:~> cd perl
[email protected]:~/perl> perl test_8.pl
http://www.unifr.ch/sfm
binmode() on closed filehandle $out at test_8.pl line 25, <$urls> line 2.
print() on closed filehandle $out at test_8.pl line 26, <$urls> line 2.
http://www.zug.phz.ch
binmode() on closed filehandle $out at test_8.pl line 25, <$urls> line 3.
print() on closed filehandle $out at test_8.pl line 26, <$urls> line 3.
http://www.schwyz.phz.ch
binmode() on closed filehandle $out at test_8.pl line 25, <$urls> line 4.
print() on closed filehandle $out at test_8.pl line 26, <$urls> line 4.
http://www.luzern.phz.ch
binmode() on closed filehandle $out at test_8.pl line 25, <$urls> line 5.
print() on closed filehandle $out at test_8.pl line 26, <$urls> line 5.
http://www.schwyz.phz.ch
binmode() on closed filehandle $out at test_8.pl line 25, <$urls> line 6.
print() on closed filehandle $out at test_8.pl line 26, <$urls> line 6.
http://www.phvs.ch
binmode() on closed filehandle $out at test_8.pl line 25, <$urls> line 14.
print() on closed filehandle $out at test_8.pl line 26, <$urls> line 14. http://www.pfh-gr.ch Got status code 500 at test_8.pl line 15 [email protected]:~/perl>
出力は は私が今何を行うことができます...私に言って何をしたいん!
更新
こんにちは、返信用私の愛する
THX - 私はここにアクセス許可の問題があることを推測....さて、私はこれを持って
...
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize::Firefox;
my $mech = new WWW::Mechanize::Firefox();
open my $urls, '<', 'urls.txt' or die $!;
while (<$urls>) {
chomp;
next unless /^http/i;
print "$_\n";
$mech->get($_);
my $png = $mech->content_as_png;
my $name = $_;
$name =~ s#^http://##i;
$name =~ s#/##g;
$name =~ s/\s+\z//;
$name =~ s/\A\s+//;
$name =~ s/^www\.//;
$name .= ".png";
open(my $out, '>', "/images $name")or die $!;
binmode $out;
print $out $png;
close $out;
sleep 5;
}
よく動作しますが、私が得ることのできるのは、test_8.plが存在するディレクトリに格納することです。
これは許可の問題であると推測します。
私は何ができますか?
私はイメージディレクトリをperlのフォルダのどこかに置くことができますか? おそらく私は
perl-directoryまたは images-directoryのいずれかの特別なルート権限を作成しています。私は、これまでの問題を解決するために何をしたか
A-は、フォルダ 上の権限checkintた - perlの を。 perl/images
b.-ルートユーザーとしてコマンドラインでスクリプトを実行します。
私が得ることができるすべては、フォルダに格納されている結果です...
linux-wyee:/home/martin/perl_dev/perl # ls
.directory images module_test pfh-gr.ch.png phsg.ch.png phtg.ch.png schwyz.phz.ch.png test_4.pl test_8.pl urls.txt
heilpaedagogik.phbern.ch.png luzern.phz.ch.png module_test.pl phbern.ch.png phsh.ch.png phvs.ch.png test_2.pl test_6.pl test_8.pl~ zug.phz.ch.png
hepfr.ch.png ma-shp.luzern.phz.ch.png open-local-file.pl phr.ch.png ph-solothurn.ch.png .png test_3.pl test_7.pl unifr.chsfm.png
linux-wyee:/home/martin/perl_dev/perl #
画像フォルダが私はそれに文字列パスに名前を付ける方法を
のperl-ディレクトリ外の画像フォルダを作成
souldを何ができる
空..です?!
親愛なる友人 - 私たちは一生懸命です - 私はかなり確信しています - これは許可の問題だと思います。しかし、それを解決する方法!?
おそらく私はすべてのテストファイルをまったく新しいディレクトリに作成する必要があります。ルートとしてではなく、通常のユーザーとして!あなたは何を言っていますか!?
'open(my $ out、 '>'、"/images/$ name ")というステートメントは、トラブルシューティングのために' $ die! ' – Melioratus
[perl-mechanizeが重複している可能性があります。いくつかのデバッグが開始されました](http://stackoverflow.com/questions/9656892/perl-mechanize-runs-into-limitations-several-debugging-attempts-started) –
こんにちはあなたが正しいことを推測してください。 – zero