IT Office Nishimiyahara

個人用スマホから商用プログラミングまでなんでもお任せ下さい

HTML::TreeBuilderでHTMLの解析をするモダンなPerlスクリプト

      2014/05/20

簡単!たった13行のコードでHTML取得&解析をするPerlスクリプト - DQNEO起業日記」が面白そうだったので、コードをコピペしたけど、文字化けしたので、Windowsでも動くように書き直してみた。 …かなり行数は増えましたが。

文字化けしないようにするには、以下の三つが大事です。

  • スクリプトをutf8で書いて、「use utf8」する
  • 入口でdecodeする
  • 出口でencodeする

まずはutf8で書いて「use utf8」します。 で、次は入り口でdecodeです。 今の場合、ウェブから取ってきたページをdecodeしてやる必要があります。 それをするには「$res->content」としているところを、「decoded_content」にします。 ただし、「decoded_content」しても文字化けする可能性はあるので、その時は別途対策が必要になります。 とりあえず、Yahooのトップページはうまく行くので、そのままにしておきます。 ということで、$contentには、decodeされてPerlの内部形式になったYahooのトップページが保管されています。 出口のencodeについては、binmodeで宣言しているので、print時に自動的にencodeされます。 と、そんな感じに修正すると、文字化けなく表示されるようになりました。

respo

respo link

ZenBackWidget

 - 情報技術について