RSSからblogの本文を抽出する方法とプログラム

このQ&Aのポイント
  • RSSからblogの本文を抽出する方法について教えていただきたいです。
  • 現在はjavaを使用してDOMを利用しているが、ブログ本文の抽出がうまくいっていない。
  • どのような方法やプログラムを使用すれば、ブログ本文を取得することができるのでしょうか?
回答を見る
  • ベストアンサー

RSSからblog(ブログ)の本文を抽出したい

RSSからblogの本文を抽出するプログラムを 作りたいと思っています。 例えば、以下のようなRSSに対して (省略部分があります。) <?xml version="1.0" encoding="UTF-8" ?> - <rdf:RDF xmlns:rdf="http://~> + <channel rdf:about="http://~"> - <item rdf:about="http://blog.livedoor.jp/~"> <title>ショッピング</title> <link>http://blog.livedoor.jp/~</link> <description>今日はとてもいい天気だったので…</description> <dc:creator>shows</dc:creator> <dc:date>2005-09-24T22:00:21+09:00</dc:date> <dc:subject>ブログ</dc:subject> - <content:encoded>  - <![CDATA[   <a href="http://image.blog.livedoor~">   </a>今日はいい天気だったので、<br>   ショッピングに出かけました<br>   <br>     本文略   <br>   新しいibookが欲しいなぁ~<br>  ]]> </content:encoded> </item> (以降略) <content:encoded>のCDATAセクションの中の、 今日はいい天気だったので ~ 新しいibookが欲しいなぁ~ までがブログの本文なのでこれを抽出したいと思っています。 そこで、現在ではjavaを使ってDOMで抽出しようと試みているのですが、 こちらのサイト http://www.hellohiro.com/xmldom.htm のHelloWorldDOMPageList.javaを参考にしてプログラムを作ったのですが、 title,link,descriptionの抽出は出来ましたが、 ブログ本文が記述されている、 <content:encoded> or <![CDATA[ 内の要素(データ)を取得できません。 どのような方法(プログラム)をすれば取得できるようになるでしょうか? よろしくお願いします。

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

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

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

参考URLと同様で NodeList contentList = element.getElementsByTagName("content:encoded"); のように指定して(後は同様に)取り出せます

shows
質問者

お礼

ありがとうございました。 データを取得することができました。

関連するQ&A

  • RSSからblog(ブログ)の本文を抽出 特定のブログのRSSにて…

    以前、「RSSからblog(ブログ)の本文を抽出したい」という質問をした者です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1677591 以前ご教授いただいた方法でプログラムを作り、 javaのDOMを使ってRSSからブログの本文を抽出することができましたが、 (参考:http://www.hellohiro.com/xmldom.htm HelloWorldDOMPageList.java) 特定のブログのRSSからは本文のデータを取得することができませんでした。 例えば、exiteやFC2などのブログのRSSからはデータを取得することができませんでした。 リンクや、タイトルなどは問題なく取得できるのですが、 本文が記述されている要素(例えば、exiteならdescription,FC2ならcontent:encoded) 内のデータを取得しようとすると、プログラムの結果として、 何も取得できずに、空白となってしまいます。 ライブドアやヤフーなど他のブログのRSSでは成功したのですが… 何か問題があるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • XML
  • ブログのHTMLからtrackback:pingを抽出したい

    ブログの「この記事へのトラックバックURL」とある、 トラックバックをするためのtrackback ping URLを 抽出するプログラムをjavaで作成したいと思っています。 一般的には、trackback ping URLは以下のように、 ブログの記事のHTMLの中の、rdf:Description要素の中の、 trackback:pingのところに記述されています。 <html> <head> … <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://blog.livedoor.jp/example/archives/500.html" trackback:ping="http://app.blog.livedoor.jp/example/tb.cgi/500" dc:title="教えてgoo" dc:identifier="http://blog.livedoor.jp/example/archives/500.html" dc:subject="example" dc:description="exaple" dc:creator="sho_athlete" dc:date="2005-10-09T23:02:14+09:00" /> </rdf:RDF> --> … </html> </head> このようなHTMLからtrackback ping URLである、 "http://app.blog.livedoor.jp/example/tb.cgi/500"を抽出したいです。 あるブログの記事のURLを入力して、 そのブログの記事のtrackback ping URLを取得するには、 どのようにプログラムを組めばいいでしょうか? また、正規表現を使う場合にはどう記述すればいいでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • ブログのRSSをウェブサイトで表示させたい

    ブログのRSSをウェブサイトで表示させたい こんにちは。 spryを使ってブログのRSSをウェブサイトで表示させています。 今は <title>や<description>を新着情報として表示しているのですが、画像やリンクも表示したいと思い<content:encoded>の中身の利用を考えています。 試しに<content:encoded>を表示させたら画像やリンクのHTMLがそのまま表示されてしまいました。 HTMLとして?(画像やリンクが)表示されるようにするにはどうすればいいのでしょうか。 下にHTMLがそのまま表示されてしまったデータを記載します。 ------------------------------------------------------------ <head> <script type="text/javascript"> <!-- var updata = new Spry.Data.XMLDataSet("RSSのアドレス", "rdf:RDF/item"); //--> </script> </head> <body> <div spry:region="updata" id="updata"> <div spry:repeat ="updata"> <p>{updata::title}</p> <p>{updata::content:encoded}</p> </div> </div> </div> ------------------------------------------------------------

  • SeesaaブログのRSS取得で、ブログの本文も取得したいのですが・・・。

    RSS取得を使用し、更新情報を載せるまでは出来ました。 タイトルだけではなく、本文も掲載したいです。 Seesaaでは可能でしょうか? RSS用の特殊タグが必要かと思うのですが、タグがわかりません。 一応実験的に試してみたタグが、 「rss_feeds.description」だったのですが、出来ませんでした。 RSS取得のhtmlは <div class="sidetitle"><% content.title %></div> <div class="side"> <% content.header -%> <% loop:list_rss -%> <a href="<% rss_feeds.page_url %>" target="_blank"><% rss_feeds.name %></a><br /> <% /loop -%> <% content.footer -%> </div>

  • ブログのHTMLの中のrdfファイルは、何の意味?

    <!--▼ エントリー(記事)▼--> <!--topentry--> <div class="ently_outline"> ~エントリー関連のhtmlが記述~ </div><!--/ently_outline--> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="<%topentry_link>" trackback:ping="<%url>tb.php/<%topentry_no>" dc:title="<%topentry_title>" dc:identifier="<%topentry_link>" dc:subject="<%topentry_category>" dc:description="<%topentry_discription>" dc:creator="<%author_name>" dc:date="<%topentry_year>-<%topentry_month>-<%topentry_day>T<%topentry_hour>:<%topentry_minute>:<%topentry_second>+09:00" /> </rdf:RDF> --> <!--/topentry--> <!--▲ エントリー(記事)▲--> 上記の様に、ブログの本文記事(エントリー)のhtmlの末尾に、rdfのタグが有ります。 このrdf部分を消去して、プレヴューさせてもブログの表示に変化は有りません。 この「rdfの部分」は何の為に有るのですか?

    • ベストアンサー
    • HTML
  • ブログのHTMLから本文を抽出したい

    いつもお世話になっています。 ブログのHTMLから本文を抽出したいと思っています。 ヤプログを例にとると、ヤプログのHTMLは以下のようになっています。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> … <!-- entry --> …  <td class="entry_title">  <h3>タイトル<span class="date">2005年10月29日(土)</span></h3> … <td class="entry_text"> … <div class="entry_layer"><div style="text-align: center;"> <img src="/cafe_life/img/25/cafe67.jpg" border="0"> </div> <br> 今日はとてもいい天気だったので、<br> 渋谷に買い物に行きました。<br> … <br> 新しいiMacが欲しいなぁ~<br> <br> </div> … <!-- entry --> … </html> そこで、本文を抽出するのに、 <td class="entry_text"> から<!-- entry -->までをHTMLから抽出し、 さらにそれに対してタグを除去するようにしてブログの本文の 「今日はとてもいい天気だったので、  渋谷に買い物に行きました。  …  新しいiMacが欲しいなぁ~」 を抽出させたいと思っています。 このようにするにはプログラムをどのように作成すればよいでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • RSSからblogデータの抽出(直接URLを入力して)

    以前、「RSSからblog(ブログ)の本文を抽出したい」の質問にて、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1677591 回答を参考に、RSSからblogのタイトル・リンク・本文を 抽出するプログラムを作成させていただきました。 ところで、このプログラムは、参考サイトの http://www.hellohiro.com/xmldom.htm HelloWorldDOMPageList.javaを参考に作成したのですが、 このプログラムでは、参考サイトのプログラム中 // パースを実行してDocumentオブジェクトを取得 Document doc = builder.parse(new File("site.xml")); // ルート要素を取得(タグ名:site) Element root = doc.getDocumentElement(); System.out.println("ルート要素のタグ名:" + root.getTagName()); … にもあるように、対象となるXML(私の場合はRSS)を保存して、 そのファイルに対してプログラムを実行しています。 今回は、RSSからblog(ブログ)のタイトル・リンク・本文を抽出する際に、 対象となるRSSを一度、site.xmlなどにXML形式で保存して、 そのファイルに対してプログラムを実行するのではなく、 プログラム中でRSSのURLを入力して、 それに対してプログラムを実行できるようにしたいです。 例えば、RSSが、http://blog.livedoor.jp/example/index.rdfだとしたら、 プログラム中でこのURLを直接入力するようにして、プログラムを実行させたいです。 そのためにはどのようにプログラムを作成すればいいでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • rdfをIE7に認識させるには

    自分のサイトでRSSを配信したいと思い、新着情報を書き込む際にinndex.rdfを生成するWEBアプリを作っています。 index.rdfを生成して、サーバーに保存するところまではできました。 ところがインターネットエクスオプローラー7で確認したところ、RSSと認識していないようで、タイトルとURLと概要をずらずら並べたような文章が表示されました。 .htaccess も作成して「AddType application/xml .rdf」と記載しています。 goo RSSリーダーで試したところ、問題なく表示されました。 どこに問題があるのでしょうか。 ----------------- <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns/" xmlns="http://purl.org/rss/1.0/" xmlns:lang="ja" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" > <channel rdf:about="RDFファイルのURL"> <title>HPの名称</title> <link>HPのURL</link> <description>HPの紹介文</description> <items> <rdf:Seq> <rdf:li rdf:resource="記事のURL1" /> <rdf:li rdf:resource="記事のURL2" /> </rdf:Seq> </items> </channel> <item rdf:about="記事のURL1"> <title>タイトル1</title> <link>記事のURL1</link> <description>概要1 </description> </item> <item rdf:about="記事のURL2"> <title>タイトル2</title> <link>記事のURL2</link> <description>概要2 </description> </item> </rdf:RDF>

  • ブログのRSSついて教えてください!!

    回覧ありがとうございます。 自分は最近ライブドアブログをはじめたのですが、アクセス数を伸ばすためにアンテナサイトなどに登録しようとしましたが、RSSがよくわかりません。RSSの登録を求められるのですが、RSSがいまいちよくわからなくて登録できているのかわかりません。 RSS登録とはブログURLのことではないのでしょうか? 自分はブログのURLを登録しました。 その後、不安になったので調べてみると、 RSSとは、 http://blog.livedoor.jp/自分のサイト名/index.rdf であると書いてあるサイトがありました。 どちらが正しいのでしょうか? また、後者の場合、自分のサイト名だけを入れればいいのでしょうか?自分のサイト名の後に続くIDなどは入力しなくていいのでしょうか? わかりづらい質問文でもうしわけございませんが、回答のほどよろしくお願いいたします。

  • FC2ブログで記事の投稿日時を表示させたい

    FC2ブログで、grey_2columnというテンプレートを使っているのですが、記事を書いた日にちまでしか表示されません。 <%topentry_second>まであるのですが、記事を書いた時間まで表示させるにはどうすればいいでしょうか。 2000文字を超えてしまうので一部しか載せられませんが、よろしくおねがいします。 </ul> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="<%topentry_link>" trackback:ping="<%url>tb.php/<%topentry_tb_no>" dc:title="<%topentry_title>" dc:identifier="<%topentry_link>" dc:subject="<%topentry_category>" dc:description="<%topentry_discription>" dc:creator="<%author_name>" dc:date="<%topentry_year>-<%topentry_month>-<%topentry_day>T<%topentry_hour>:<%topentry_minute>:<%topentry_second>+09:00" /> </rdf:RDF> --> <div class="pagetop"><a href="#container" title="<%template_go_top>">Pagetop</a></div> </div><!--/content--> <!--/topentry--> <!--/not_titlelist_area--> <!--/not_search_area-->