• ベストアンサー

タグで囲まれた文字を取得する方法

タグで囲まれた文字列を取る関数とか ないでしょうか。 「この部分」を取りたいのです。  <td>この部分</td>  <font color="#ff0000">この部分</font>  <a href="http://test.com">この部分</a> 同じタグがいくつも有る場合もあるので、 頭から(下から)の検索スタート文字数とか 決められれば最高です。 調べてみたところ下のモジュール?をつかうと <title></title> とかの間はとれるようですが・・・ WWW::Mechanize LWP::UserAgent

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

HTML::TokeParser を使ったリンクテキストを取り出す例 ---------------------------------------------------------------- use encoding 'shiftjis'; use HTML::TokeParser; my @link=(); #リンクタグのテキストを集積する open(my $fh, "<:encoding(shiftjis)", 'test.html'); my $p = HTML::TokeParser->new($fh); while (my $token = $p->get_tag('a')) { my $text = $p->get_text('/a'); push(@link, $text); } close($fh); print $link[2]; #リンクテキストを番号で扱える ---------------------------------------------------------------- サンプルはリンクのみのものだけども 混在したタグを扱う(同時に、<a>,<font>など)場合 while($token = $parser->get_token()){ if($token->[0] eq 'S' && $token->[1] eq 'a'){ のようにすることで、タグの種類を調べて動作を分岐すればよい 詳しくは perldoc HTML::TokeParser を参照

hikou
質問者

お礼

ありがとうございます。 このまま使えそうです。 とても参考になりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

HTML::Parser か HTML::TokeParser でできると思います。 詳細は perldoc で見て下さい。(日本語訳は参考URLのページにあります)。

参考URL:
http://homepage3.nifty.com/hippo2000/perltips/
hikou
質問者

お礼

ありがとうございます。 使えそうです。助かりました。

すると、全ての回答が全文表示されます。

関連するQ&A