perl HTML::TreeBuilder の使い方等の覚え書き
はじめに
perl のモジュールの1つに HTML::TreeBulider というものがあります。これは何かというとHTML形式で書かれたファイルから class や id を探してその中身を抜き出して出力してくれるモジュールです。私が認識してるのはそんなところ。詳しくは以下参照ください。上手くいかなかった所や解決策について記述してます。
スポンサーリンク
基本的な使い方?
基本的な使い方なのかどうかわかりませんが、HTML、perlと出力結果 を載せます。
- HTML(ファイル名:11.html)
- perl(ファイル名:url200.pl)
- 出力結果
$ ./url200.pl
AAAAAAAAAA
CCCVSDDD
EEEVSFFF
GGGVSHHH
参考にしたのは以下2つのサイト。ベースは1つ目のものを参考にしました。
上手く行かなかったところ、解決策
前節に参考にしたページを載せてますが、基本的に1つめの参照元を参考にしてました。ほぼコピペでやってました。そうすると、HTMLソースの12行から21行の部分の抜き出しができず、 「CCCVSDDD」 のみとなってしまうのです。少なくとも class 名が異なればどうにかなったのですが。
- 出力結果
$ ./url200.pl
AAAAAAAAAA
CCCVSDDD
その時の perl ソースは
いろいろ調べたのですが、なかなか良策にありつけず、そこで 20行目の
-> as_text
の部分を削除してみたのです。すると
HTML::Element=HASH(.......)HTML::Element=HASH(............)HTML::Element=HASH(...........)
こんな感じで、3つ同じようなものがでてきました。ということは、以下2つのことがなんとなく分かってきました。
- as_text によって文字にしている。
- $Bの中には3つ文字列が入ってる。
そしたら、$Bのスカラー変数をリストにしたらいいじゃん!ってことで、$Bを@Bに変えてやってみましたけど、なんかエラー出てる…。そこで、参考となったのが2つ目の参照元です。ここでは、print するときに as_text を入れていて、同じように真似をしてみたら上手くいきました。
結局
のところを
としました。
以上