URL内のテキストをすべて抜き出すには[Perl編]

URLを抽出できるようになったので、次にそのURLのテキストを抜き出してみます。
実際には無駄な部分も取得されてしまうと思いますが・・・。

まずはこんな感じにして取得してみました。

#!/usr/bin/perl

use strict;
use warnings;
use LWP::UserAgent;
use HTML::TreeBuilder;
use Jcode;

# urlを指定する
my $url = 'https://www.pref.shizuoka.jp/';
# my $url = 'http://www.jalan.net/kankou/210000/';
print $url."\n";
# IE8
my $user_agent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)";

# 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);

# DOM操作
my @items =  $tree->find('html');
print $_->as_text."\n" for @items;

 

このように取得できました。

静岡県公式ホームページ ふじのくに総合トップページ このサイトではJavaScriptを使用したコンテンツ・ 機能を提供しています。JavaScriptを有効にするとご利用いただけます。 本文へスキップします。静岡県 文字サイズ・色合い変更音声読み上げふりがなふりがな非表示Other languageサイトマップ メニュー ここから本文です。緊急情報 水難事故注意報の発令(6月1日~6月30日)北朝鮮の「弾道ミサイル」に係る本県の対応 県政情報 総合案内、電子行政サービス、ようこそ知事室へ、県へのご意見、県の広報、採用情報、入札情報など ふじのくに魅力情報 観光情報、グルメ、食材、静岡に暮らす、富士山ガイド、富士山静岡 空港など ライブカメラ富士山ビュー 県庁へのアクセス各種お問い合わせ 著作権・リンクについて個 人情報保護についてユニバーサルデザインに配慮したページ 〒420-8601 静岡県静岡市葵区追手町9番6号 電話番号(県庁案内):054-221-2455 Copyright ・hizuoka Prefecture. All Rights Reserved.

割と良いかも?と思いましたが
JavaScriptを有効にするとご利用いただけます。
てなっていますね。これは仕方ないですかね・・・

JavaScriptの部分はグーグルでも拾えていないとおもいますし。

次に、2件目の
http://www.jalan.net/kankou/210000/
をやりますと、盛大に文字化け・・・。
見てみると、「ShiftJIS」ですね。

とりあえず、取得の部分を以下のように変更ました。

my $content = Jcode::convert( $res->content ,"utf8" , "sjis");

この書き方で「ShiftJIS から UTF8 に」となります。
感覚的には逆ですよね。。。

 

静岡の観光スポットランキングTOP10 – じゃらんnet 国内の観光スポット・イベント情報はじゃらんnetじゃらん PRODUCED BY RECRUIT 日本最大級の宿・ホテル予約サイト予約照会・変更・キャンセルマイページ 宿・ホテル予約出張ビジネス温泉・露天高級宿日帰り・デイユース じゃらんパック(交通+宿泊)遊び・体験予約観光ガイド旅行ガイド 観光ガイド ご当地グルメガイド イベントガイド お土産ガイド みんなの旅行記 ツアーレンタカー高速バス航空券 海外ホテル海外航空券航空券+ホテル 観光ガイド旅行ガイド観光ガイドご当地グルメガイドイベントガイドお土産ガイドみんなの旅行記 海外ツアーはエイビーロードサイトのご利用 方法ヘルプ/問い合わせ 観光ガイド> 静岡の観光 ようこそ、ゲストさん(ログイン)新規会員登録 静岡の観光スポット静岡県での観光となると誰もが真っ先に思いつくスポットが霊峰富士山だろう。世界遺 産にも指定されている富士山近隣には村山浅間神社や須山浅間神社など所縁ある寺社も多く、富士信仰の歴史文化も垣間見ることができる。熱海市や伊豆市は国内屈指の温泉街のため年間を通して多くの旅行者が足を運んでいる。また、天下を統一した徳川家康の居城としても知られる駿府城や浜松城などの城郭も目にすることができる。・・・・・・・

今度はかなり長く取れました。
実はもっともっと長いです。

次はエンコードチェックを自動にして、10件のURLを一気に処理するようにしてみます。