• ベストアンサー

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

タグで囲まれた文字列を取る関数とか ないでしょうか。 「この部分」を取りたいのです。  <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

  • PerlのモジュールにWWW::Mechanizeについて

    PerlのモジュールにWWW::Mechanizeというものがありますが、これはリンクやフォームを制御する場合は便利ですが、HTMLのタグ(例えば、<title>この部分</title>)を抽出する場合などは、HTML::TreeBuilderを使えば良いのでしょうか? また、WWW::Mechanizeに詳しい書籍(英語でもOK)がありましたら教えてください。

    • ベストアンサー
    • Perl
  • webbrowserで特定のタグを取得したい

    VB6もしくはVBAです。 HTMLの中をループしてタグを取得しています。 For Each myTag In myIE.Document.all.tags("TD") 次のようなHTMLがあって"このTD"に含まれるAタグを取得したい場合、 指定のTD内だけでループしてAタグを取得するにはどうしたらいいのでしょうか? <table width="200" border="1"> <tr> <td><a href="#">AAAAA</a><a href="#">AAAAA</a><a href="#">AAAAA</a></td> 'このTD <td><a href="#">BBBBB</a><a href="#">BBBBB</a><a href="#">BBBBB</a></td> <td><a href="#">CCCCC</a><a href="#">CCCCC</a><a href="#">CCCCC</a></td> </tr> <tr> <td>DDDDD</td> <td>EEEEE</td> <td>FFFFF</td> </tr> <tr> <td>GGGGG</td> <td>HHHHH</td> <td>IIIII</td> </tr> </table>

  • h1タグについて教えてください。

    h1タグを付けると文字が大きくなってしまいます。 フォルダにメモ帳で h1 { text-align: center; font-size: 10px; font-weight: normal; color: #FF0000; } の内容です。フォルダの名前はstyle.cssです。 HPのソースには<HEAD></HEAD>の中に<link href="style.css" rel="stylesheet" type="text/css"> を入れてあります。 h1を使ったソースは <TD><h1>●●●●●</h1></TD>です。 ●の文字が大きくなってしまい困っています。教えてください。おねがいします。 初心者ですので伝え方の不足の部分があるかもしれませんが、宜しくお願いします。

  • 携帯での文字背景色のタグについて

    自分は携帯サイトを作っていまして、ととめろ(http://ttr.jp/)のような文字背景色をつけようと思い、タグを <table width=240 bgcolor="#ff9f00"><tr><td><A href="….html">文字入力</A></td></tr></table> と入力したのですが、自分のD902iで表示されたのですが、友人のF901iCでは表示できませんでした…。 902iシリーズではこの構文は有効なようなのですが、それ以下のシリーズではどうやら効かないようなのです…。 FOMAの全シリーズで対応している文字背景のタグを教えていただけませんか? 文字背景色を段落ごとに色分けするので、白い間隔が空かない方法でお願いします。

  • 同じようなタグと文字のパターンを簡略化する方法

    <table> <tr><td><font color="blue">あ</font><font color="red">い</font><font color="green">う</font></tr> <tr><td><font color="blue">あ</font><font color="red">い</font><font color="green">う</font></tr> <tr><td><font color="blue">い</font><font color="red">う</font><font color="green">あ</font></tr> <tr><td><font color="blue">あ</font><font color="red">い</font><font color="green">う</font></tr> </table> このような感じに同じパターンのHTMLタグと文字の羅列があるのですが、 タグが長くなりすぎて後から調整し直そうとするととても大変です。 <font color="blue">あ</font><font color="red">い</font><font color="green">う</font> 上記の部分を何処か別の場所から呼び出したりして簡略化することは出来ないでしょうか?

  • 携帯サイトのMARQUEEタグで流している文字が途中で切れるのですが

    今HPビルダー11で携帯サイトを作っています。 サーバーにアップして、自分のdocomoの携帯で確認しながら修正しています。 そこで質問なのですが、 テーブルの中にMARQUEEタグで文字を流すようにしたのですが、 43文字のうち、32文字までしか表示されず、33文字以降が切れてしまいます。 タグは以下の通りです。 どうしたら43文字全部を表示できるようになるのでしょうか? よろしくお願い致します。 <TABLE cellspacing="0" cellpadding="0"> <TBODY> <TR> <TD bgcolor="#CC00FF" width="470"><FONT size="-1" color="#ffffff"> *Welcome!*</FONT></TD> </TR> <TR> <TD bgcolor="#FFCCFF" width="470"><FONT size="-1"><MARQUEE scrollamount="3" width="470">ああああああああああああああああああああああああああああああああいいいいいいいいいいいMARQUEE> </FONT></TD> </TR> </TBODY> </TABLE>

    • ベストアンサー
    • HTML
  • テーブルの一つのtdタグだけ、文字を小さく

    テーブルの一つのtdタグだけ、文字を小さくしたい場合は、 この方法でいいのでしょうか? <html> <head> <title></title> <STYLE type="text/css"> <!-- p { font-size: 20%; } '--> </STYLE> </head> <body> <table border=1 cellspacing=1 cellpadding=1> <tr><td>普通</td><td>普通</td></tr> <tr><td>普通</td><td><p>test</p></td></tr> </table> </body> </html>

    • ベストアンサー
    • CSS
  • aタグに直接style=""で:hoverをしたいしたい

    お世話になります。 下記のaタグのCSS記述部分を直接<a href="" style="..."として記述するには どのようにすればよいのでしょうか hoverをaタグ内に直接指定しようとしていろいろ調べたのですが、解説しているサイトを見つけられなくて、質問させてもらってます。 A:link.menu { text-decoration:none; FONT-SIZE: 12px; COLOR: #0000ff; } A:visited.menu { text-decoration:none; FONT-SIZE: 12px; COLOR: #0000ff; } A:hover.menu { FONT-SIZE: 12px; color:#0000ff; background-color:#66bce2; } A:active.menu { FONT-SIZE: 12px; COLOR: #0000ff; } お手数お掛けしますが、どなた様かご教授いただけますようお願い致します。

    • ベストアンサー
    • HTML
  • テーブル内の文字を一度に小さくするタグ

    <table border=*> <tr><td></td><td></td></tr> <tr><td></td><td></td></tr> </table> でやっても文字はふつうサイズです。 かと言って <table border=*> <tr><td><font size=*></td><td><font size=*></td></tr> <tr><td><font size=*></td><td><font size=*></td></tr> </table> でやるとかなりの量を打ちこまなくてはなりません。 これを一度に済ませるタグはないのでしょうか? 教えてください。

  • タグに詳しい方、助けて下さい!

    以下のようにタグを打って携帯サイト作ろうとしているのですが、携帯から確認すると途中からテーブルが左側に寄って見えるようになりました。(PCからだとちゃんと真ん中になってます) タグを引っ張ってきただけで知識はなく、どこがどうおかしいのかわかりません。 わかる人いたら教えて下さい…お願いします! <center><Table align="center" Border="0" Width="200" Valign="middle"> <Tr> <Td ColSpan="2" bgcolor="#FF69B4" Align="Center"><B><Font Color="#ffff33">★</Font><Font Color="#FFffff">更新・12/**</Font><Font Color="#ffff33">★</Font></B><Td></Tr><Tr><Td Width="600">※トップイラスト挿入※</Td><Td Width="20"><Font Color="#FF69B4"><Font Color="#ffff33">★</Font><br>*↓コンテンツ5行くらい<br><Font Color="#ffff33">★</Font></Font></Tr> <Tr><Td ColSpan="2" bgcolor="#FF69B4"><Marquee><Font Color="#ffffff">12/** ****</Font></Marquee></Td></Tr></Table></center>