• 締切済み

トラックバック先のブログのURLの一覧を取得したい

あるブログの記事にトラックバックをしたブログのURLの一覧を取得し、 さらに、トラックバック先のブログにもトラックバックをしているブログがあれば、そのブログのURLも取得する。 (例 ブログAの記事にブログB,C,Dがトラックバックをしていて、さらにブログBにはブログE,Fがトラックバックをしていた。 この場合ブログB,C,D,E,FのURLを取得したい。) このようにして、ある話題について語られているブログ(ブログのURL)を取得するプログラムを作成したいと思っています。 プログラムの作成にはBlog Hacksで紹介されている、 トラックバックをスレッド化して表示するプログラム (http://blog.bulknews.net/cookbook/blosxom/trackback/tb_thread.htmlのtb_thread.cgi) トラックバックをたどるアプリケーション (http://blog.bulknews.net/cookbook/blosxom/trackback/tbtrace.htmlのtbtrace.cgi ) を参考にしたいと思っています。 これらのプログラム(CGI)では、トラックバックのつながりをスレッド表示したり、 関連する記事を一覧でブラウズすることができます。 しかし、私の場合は、トラックバックをしたブログのURLの一覧が取得したいので、 これらのCGIの結果では、表示されたリンクをクリックしないとそのブログのURLを取得することができません。 そこで、ブログのURLの一覧を一度に取得するには上記のプログラム(CGI)をどのように変更すればいいのでしょうか? (ちなみに、CGIで実装しなくても構いません) よろしくお願いします。

  • shows
  • お礼率96% (48/50)
  • Perl
  • 回答数1
  • ありがとう数1

みんなの回答

  • noppi_99
  • ベストアンサー率34% (10/29)
回答No.1

List 1: tb_thread.cgi これなら 一度に取得というのは?配列として?テキスト出力?画面? display_itemで<a href="Link先URL" title="トラバタイトル">トラバタイトル</a>を出力するようにしているのでココをいじればいいでしょう。

shows
質問者

お礼

ご回答ありがとうございます。 display_itemを変更するということは、 sub print_form { }の中の print $q->a({ -href => $item->{link}, -title => _enc($tooltip) の部分を変更すればいいのでしょうか? トラバタイトルではなく、URLを表示させるには、 スクリプト的にはどのように変更させればいいのでしょうか? また、取得したURLの一覧を他の目的に利用しやすいように、 できればテキスト出力などして、テキストエディタなどに保存できる形にしたいのですが、 その場合はどのようにすればいいのでしょうか? よろしくお願いします。

shows
質問者

補足

URLの一覧を画面で表示させるには、以下のようにして、 enc($item->{title}を enc($item->{link} のように変更して表示させることができました。 そこで、出力結果を画面ではなく、テキスト出力にするには、 どうしすればいいでしょうか?

関連するQ&A

  • ブログのHTMLからトラックバックをしたブログのURLの抽出

    ブログのHTMLから、そのブログのある記事に トラックバックをしたブログのURLを抽出するプログラムを作りたいと思います。 例えば、URLがhttp://blogs.yahoo.co.jp/example/1234というヤフーのブログの記事に、 http://blog.goo.ne.jp/example/1234 http://blogs.yahoo.co.jp/example2.html の二つのブログがトラックバックをしたとします。 このヤフーのブログの記事のHTMLは以下のようになります。 <html> <head> … <style="display:none">http://blogs.yahoo.co.jp/example/1234/trackback</div> … <tr id="tb_tab" style="display:block"> … <b><a href="http://blog.goo.ne.jp/example/1234" target=_blank>…</a></b> … <b><a href="http://blogs.yahoo.co.jp/example2.html" target=_blank>…</a></b> … </body> </html> そこで、トラックバックをしたURLを抽出するときに、 例えば、http://blog.goo.ne.jp/example/1234を抽出するのに、 target=_blankを参照して、 HTML中の<a href="http://blog.goo.ne.jp/example/1234" target=_blank>から http://blog.goo.ne.jp/example/1234を抜き出すようにして、 トラックバック先のURLを抽出するプログラムを作成したいです。 このようなプログラムを作成するにはどのようにプログラムを組めばいいのでしょうか? また、HTML中には、target=_blankで参照すると、以下のような <a href="http://rd.yahoo.co.jp/rss/b/blog/myblog/rss2/01/*http://blogs.yahoo.co.jp/example/rss.xml" target=_blank> [<a href="/example2/5242000" target=_blank> 余分な情報も抜き出してしまうので、上記を抽出しないように、 rssを含むもの、http:で始まらないものは抽出しないという条件で抽出できるようなら、 こちらの方法も教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • トラックバックについて教えてください

    こんばんは 最近ブログを始めたのですがトラックバックについてよく分からないことが・・ ちなみにexciteブログを使用しています 相手の記事を見てトラックバック(TB)するとした場合 記事の下にある「Trackback」→「トラックバックする」を経て 記事投稿ウィンドウが現われ自分のブログに送信しますよね もちろんTB先には参照した記事のURLが自動的に記載されてます 相手の記事の下に「Tracked from(私の名)」と出るのは私がTBしたからですよね? 良く分からないのは私の記事(参照して書いた)の下のTB欄の 「Tracked from・・・」のところに相手の記事が記載されていることです 要は・・・ 私が参考にした記事からTBされていることです(タイムパラドックス?笑) これは単に相手が気を使ってくださって投稿後にTBしてくれたのか もしくは何か私のTBのしかたに問題があるのか よろしくお願いします

  • トラックバック先のURLの抽出(ライブドアのブログにて)

    以前の質問 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1725502 を参考にライブドアのブログにトラックバックされたブログのURLを取得するプログラムを、 以下のように作成しました。 class GetTBAddrLivedoor { … Pattern trackBack = Pattern.compile("<a target=\"_blank\" href=\"(http://.+)\" class=\"posttitle\">"); while((aLine = reader.readLine())!=null){ // if(aLine.indexOf("tb_tab")>=0){ if(aLine.indexOf("<a name=\"trackback\">") >=0){ flag=true; } else { if(flag && aLine.indexOf("<a name=\"comments\">")>=0) … しかし、ライブドアでは、一度リニューアルをしまして、 それが原因でリニューアル前後のブログでは、HTMLの構造が変わり、 トラックバック先のURLの記述方法が異なるようになってしまっため、 URLを取得できないものもありました。 リニューアル後の新しいブログは、 <a target="_blank" href="http://blog.livedoor.jp/example/archives/500.html" class="posttitle"> リニューアル前の古いブログは、 <a class="atrackback-post" target="_blank" href="http://yaplog.jp/example/archive/178"> という記述になっています。 そこで、一度の処理で、リニューアル後と前のブログに対してトラックバックURLを取得させる、 新しいブログの場合には、 Pattern trackBack = Pattern.compile("<a target=\"_blank\" href=\"(http://.+)\" class=\"posttitle\">"); 古いブログには、 Pattern trackBack = Pattern.compile("<a class=\"atrackback-post\" target=\"_blank\" href=\"(http://.+)\">"); このようにして、全てのライブドアのブログに対応できるプログラムにするには、 プログラムをどのように改正すればよいでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • トラックバック先のURLの抽出でループを避けたい

    ブログのトラックバック先のURLを取得するプログラムを作っています。 例えば、ブログAの記事に、B,Cのブログがトラックバックをして ブログBにブログaが、ブログCにはブログbがトラックバックをしていて、 さらにブログaにはブログ1がトラックバックをしていたとします。 このとき、ブログB,C,a,b,1のURLを取得するプログラムをこちらのご回答を参考にしながら、以下のように作りました。 public class BlogTB { public static void main(String[] args) { ArrayList al = new ArrayList(); String url = args[0]; addUrl(al, url); String[] TBURL = (String[])al.toArray(new String[0]); for(int i = 0 ; i < TBURL.length ; i++) { System.out.println(TBURL[i]); } } private static void addUrl(ArrayList al, String url) { al.add(url); String[] TBURL = HTMLTB.getHTMLtb(url); if (TBURL[0].equals("")) return; for(int i = 0 ; i < TBURL.length ; i++) { addUrl(al, TBURL[i]); } } } HTMLTB.getHTMLtbでは、トラックバック先のURLを取得する処理を行い、その一覧をTBURLに格納します。 この操作を再帰的に繰り返して、トラックバック先のURLを取得させています。 ここで、もし上記のケースで、 ブログ1がブログaにトラックバックをしていた場合(トラックバック返し)や、 ブログ1がブログAにトラックバックをしていた場合などでは、 上記のプログラムを走らせると、ループになっていまいます。 登録しようとしているurlがalに既に登録済みかどうかのチェックなど、 重複するURLをTBURLに登録しないようにして、 ループを防ぐためには、プログラムをどのように改正すればいいでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • blog トラックバック機能

    お世話になります。 巷では blog が流行っているようで、 これに関連したサイトを立ち上げようと考えております。 とくに、トラックバック機能について詳しく知りたく、 質問させていただきます。 ------------------------------------------------- トラックバックはリンク元サイトに 「このような記事からリンクを張った」 という情報を通知する仕組みで、 リンク元記事のURLやタイトル、内容の要約などが送信される。 トラックバックされたサイトはこの情報を元に 「この記事を参照している記事一覧」を 自動的に生成することができる。 IT用語辞典 e-Words [トラックバック] より引用 ------------------------------------------------- この機能を利用すれば、 トラックバックURLから エントリーのタイトル、内容、ブログのタイトル を取得できるのではないかと考えたのですが、 これは可能でしょうか? また、その方法とは? CGI は初心者で勉強中です。(カウンタを作ったり…。) http://www.movabletype.org/downloads/tb-standalone.tar.gz よりトラックバックのスタンドアローン実装をダウンロードし、 解読中ですが、いまいち、いや、ほぼ分かりません。 ご存知の方が居られましたら、ご教授願いたく存じます。

    • ベストアンサー
    • CGI
  • 同じブログサービスでもHTMLの構造が異なるブログからのトラックバック先のURLの取得

    以前の質問 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1725502 のNo.4のご回答を参考にして、 ブログのHTMLからトラックバックをしたブログのURLの取得するプログラムを作成しています。 しかし、ブログサービスによってはリニューアルの関係か、 新しいブログと古いブログではHTMLの構造が変わってしまい、 一つのプログラムでは対応できない場合がでてきました。 例えば、ヤプログを例にして説明します。 こちらのヤプログのブログhttp://yaplog.jp/lovery-honey/archive/27 のように比較的古くからのブログであれば 参考プログラムの正規表現のところを、 以下のようにすると、URLを取得できるのですが、 Pattern trackBack = Pattern.compile("<a href=\"(http://.+)\" target=\"_blank\">"); while((aLine = reader.readLine())!=null){ if(aLine.indexOf("<a id=\"trackback\">") >=0){ flag=true; } else { if(flag && aLine.indexOf("<!-- pings -->")>=0) break; } こちらのブログhttp://yaplog.jp/chikako/archive/19 のように比較的新しいブログでは、 HTMLの構造が変わってしまい、 Pattern trackBack = Pattern.compile("<a href=\"(http://.+)\" target=\"_blank\">"); while((aLine = reader.readLine())!=null){ if(aLine.indexOf("<a name=\"tb\">") >=0){ flag=true; } else { if(flag && aLine.indexOf("<div class=\"main_cl\">")>=0) break; } と、正規表現を上記のように記述しないとURLを取得できません。 そこで、ひとつのプログラムで、上記の二つのケースに対応するようにするには、 正規表現をどのように記述して、プログラムを改正すればいいでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • blogのトラックバック

     blogのトラックバックについて質問です.  多くの,あるいはすべてのblogには,   「この記事へのトラックバックURL http://...」 なるものが書かれています.私は「この記事へのトラックバックにはこのURLを使う」のだと理解したのですが,私が見る限り,このようなURLを使っているのを見たことはなく,すべての人がその記事*自体*へのリンクを使用しています.  私が知りたいのはここからでして,記事自体のURLを書いてその記事に関するコメントを述べていたとしても,元のblogには「どこそこのblogからのトラックバック」としてきちんと認識されています.  これはなぜなのでしょうか.トラックバックURLを使用したときと記事自体のURLを使用したときの差はなんなのでしょうか.私にはまだ何か気付いていないことがあるのでしょうか.

  • トラックバックしたブログを確認するには?

    gooブログでは、自分のブログにトラックバックされているブログはトラックバック一覧で簡単に確認できますね。 これの逆をやりたいのですが。 つまり、過去に自分が自分の記事に対し、他のブログへトラックバックした、相手のブログ(url)一覧を確認したいのです。 自分でどのブログにトラックバックしたか忘れてしまって、確認したいのです。 何か確認する方法ありますか?

  • トラックバック先URLが多くなりすぎた時

    ブログのいいところはトラックバックが簡単に出来ることですよね。 それで、ブログピープルなどのトラックバック先URLを集めているサイトなどで、記事を書きそうなURLをとりあえずワードに貼り付けて管理しているのですが、多くなりすぎてしまって、記事に関連するURL先を探しにくくなりました。 なにかよい方法はないでしょうか。 皆さんはどうされているのでしょう。よろしくおねがいします。

  • ブログでトラックバック

    アフィリエイトのエントリー型プログラムで、自分のブログに、当該会社の宣伝文を当該会社の要求を満たして投稿すると、○○円フィーがもらえるというのがあったので、さっそく書いてみようと思いましたが、以下のようにトラックバックをせよとの要求がありました。 ★トラックバックURL★ 記事投稿(エントリー)の際に、下記URLをトラックバックして下さい。 私のブログは、グーグルのbloggerを用いています。グーグルのbloggerを調べてみましたが、トラックバックそのものの機能は備えていないようです。ただ、ブログの記事を他にリンクする方法はあるようなのですが...。 bloggerでもトラックバックは出来るのでしょうか?どなたかご存知の方教えてください。

専門家に質問してみよう