複数行のURLを記述したテキストファイル(yomikomi.txt)を読み込み、
それぞれのURL上にあるWEBページの特定箇所にある情報を、
異なるテキストファイル(kakikomi.txt)に書き写す。
という作業を行いため、下記のようなコードをを書いたのですが、
全く機能しません。
ご教授のほど宜しくお願い申し上げます。
===========コードスタート===========
use Web::Scraper;
use URI;
use encoding "shiftjis";
binmode STDERR, ":encoding(shiftjis)";
# 特定部分を number という名前で取るスクレイパーを作成
my $scraper = scraper {
process '//span[ @class="viewstatus" ]', 'number' => 'TEXT';
};
# 入力モードでオープン
open(FH,"<yomikomi.txt");
# 読み込み
@line = <FH>;
close(FH);
# URLオブジェクトを、
my @uri = new URI(@line);
# ファイル名をしたファイルへの書き込み
my $out_file = "kakikomi.txt"; #出力ファイル
open( my $out_fh, ">", $out_file );
# 先ほどのスクレイパーに渡す。(スクレイピングされる)
for(@uri){my $res = $scraper->scrape($uri);
print $out_fh"$res->{number}";
}
close(IN);
ああ…ごめんなさい。
URI使ったこと無いので…多分、ここで複数のURLを取得できていないとか…
use Web::Scraper; use URI; use encoding "shiftjis"; binmode STDERR, ":encoding(shiftjis)"; # 特定部分を number という名前で取るスクレイパーを作成 my $scraper = scraper { process '//span[ @class="viewstatus" ]', 'number' => 'TEXT'; }; # 入力モードでオープン open(FH,"<yomikomi.txt"); # 読み込み @line = <FH>; close(FH); # ファイル名をしたファイルへの書き込み my $out_file = "kakikomi.txt"; #出力ファイル open( my $out_fh, ">", $out_file ); foreach (@line) { my $uri = URI->new($_); # URLオブジェクトを取得 my $res = $scraper->scrape($uri); # スクレイパーに渡す。(スクレイピングされる) print $out_fh"$res->{number}"; } close(IN);
# 先ほどのスクレイパーに渡す。(スクレイピングされる) for(@uri){my $res = $scraper->scrape($uri);
単純に、
# 先ほどのスクレイパーに渡す。(スクレイピングされる) for(@uri){my $res = $scraper->scrape($_);
とか…
まだあるかもしれませんが…。間違っていたら済みません。
ありがとうございます!
読み込みファイルの一行目の結果に対する読み込みはできるようになったのですが、
二行目以降の結果が依然としてでてきません。
他にもあるのでしょうか。
ああ…ごめんなさい。
URI使ったこと無いので…多分、ここで複数のURLを取得できていないとか…
use Web::Scraper; use URI; use encoding "shiftjis"; binmode STDERR, ":encoding(shiftjis)"; # 特定部分を number という名前で取るスクレイパーを作成 my $scraper = scraper { process '//span[ @class="viewstatus" ]', 'number' => 'TEXT'; }; # 入力モードでオープン open(FH,"<yomikomi.txt"); # 読み込み @line = <FH>; close(FH); # ファイル名をしたファイルへの書き込み my $out_file = "kakikomi.txt"; #出力ファイル open( my $out_fh, ">", $out_file ); foreach (@line) { my $uri = URI->new($_); # URLオブジェクトを取得 my $res = $scraper->scrape($uri); # スクレイパーに渡す。(スクレイピングされる) print $out_fh"$res->{number}"; } close(IN);
ありがとうございます!
できました!!
ありがとうございます!
できました!!