リダイレクトされているページを調査してみる
概要
調査したいSPページのURL一覧に対して、metaタグでrefreshを指定しているURL一覧を抽出したい
インプットファイル(input.txt)
http://XXXXXXX http://XXXXXXX
ソース
use strict; use warnings; use LWP::UserAgent; use HTML::TreeBuilder; # iphoneのフリをする my $user_agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13F69 Safari/601.1"; # file指定 my $input="input.txt"; my $output="output.txt"; my @files; # input file読み込み open (IN, $input) or die "$!"; while (<IN>) { push(@files, $_); } close (IN); # input fileの中身を調査する foreach my $var(@files){ # 改行コードの削除 $var =~ s/(\r\n|\r|\n)$//g; my $url = $var; # 0.5秒sleepする select undef, undef, undef, 0.5; # LWPを使ってサイトにアクセスし、HTMLの内容を取得する my $ua = LWP::UserAgent->new('agent' => $user_agent); my $res = $ua->get($url); my $content = $res->content; # HTML::TreeBuilderで解析する my $tree = HTML::TreeBuilder->new; $tree->parse($content); # 必要なタグを抜き出す foreach my $tag ($tree->find("meta")) { # metaタグ内にrefreshがあるものを抽出する if ($tag->as_HTML =~ /refresh/){ # 調査対象となるURLとmetaタグをoutput fileに出力 open (OUT, ">>$output") or die "$!"; print OUT $url.",".$tag->as_HTML."\n"; close (OUT); } } }
アウトプット(output.txt)
http://XXXXXXX,<meta URL=http://XXXXXXX" http-equiv="refresh" />