RSSからblogデータの抽出方法とは?

このQ&Aのポイント
  • RSSからblogデータを抽出する方法を教えてください。
  • プログラム実行時にURLを入力せずに、プログラム中にRSSのURLを記述して実行する方法を教えてください。
  • 具体的なプログラムの書き方を教えてください。
回答を見る
  • ベストアンサー

RSSからblogデータの抽出(プログラムにURLを記述して)

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

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

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

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

前の質問の回答で parse(args[0]); とあるように、URLを表す文字列をparseの引数として与えることができます。

shows
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • 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
  • ?__mode=rssのRSSデータからトラックバックをしたトラックバック先のURLを取得するプログラムの改正

    import javax.xml.parsers.*; import org.w3c.dom.*; import java.io.*; public class GetTBlink { public static void main(String[] args) { try { String url = "http://app.blog.livedoor.jp/takapon_ceo/tb.cgi/50030092?__mode=rss"; DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = dbfactory.newDocumentBuilder(); Document doc = builder.parse(url); Element root = doc.getDocumentElement(); NodeList list0 = root.getElementsByTagName("error"); Element element0 = (Element)list0.item(0); NodeList list1 = root.getElementsByTagName("rss"); Element element = (Element)list1.item(0); NodeList list2 = root.getElementsByTagName("channel"); Element element1 = (Element)list2.item(0); NodeList list3 = element1.getElementsByTagName("item"); for (int i=0; i < list3.getLength() ; i++) { Element element2 = (Element)list3.item(i); NodeList linkList = element2.getElementsByTagName("link"); Element linkElement = (Element)linkList.item(0); String link = linkElement.getFirstChild().getNodeValue(); System.out.println("リンク:" + link ); } } catch (Exception e) { e.printStackTrace(); } } } 以上のプログラムを次のように改正したいです。 pingurl = http://app.blog.livedoor.jp/takapon_ceo/tb.cgi/50030092として、 pingurlの後ろに ?__mode=rssを付加させるようにして String url を指定したい (String url = (pingurl)?__mode=rss のようなイメージ)  よろしくお願いします。

    • ベストアンサー
    • Java
  • URLでプログラムを操作させるか判別させたい

    先日http://oshiete1.goo.ne.jp/kotaeru.php3?q=1734032 の質問をした者です。 ところで、先日の質問でプログラム中に例としてあげたライブドアのブログのように、 __mode=rssに対応している場合 http://app.blog.livedoor.jp/takapon_ceo/tb.cgi/50030092?__mode=rss は、トラックバック先のURLを取得できるのですが、 __mode=rssに対応していないブログ (例えばhttp://tb.plaza.rakuten.co.jp/hirobastaff/diary/200510210000/?__mode=rss(楽天スタッフblog)) のようにレスポンスとしてエラー(error要素が1)を返すブログに対してはときはリンクを抽出することができないので、 URLで判別させて、リンクを取得する操作を実行するかしないかを決めたいです。 つまり、__mode=rssに対応しているブログ、例えばライブドアやヤプログやココログなどのブログに対しては、 リンクを抽出させるプログラムを実行させるため、 プログラム中のString url を見て、そのURLが__mode=rssに対応しているブログのURLの場合はプログラムを実行させる、 例えば、String url にblog.livedoorやjpyaplog.jpやcocolog-nifty.comなど含まれているなど、 __mode=rssに対応しているのでブログのURLが含まれていたら、トラックバック先のURLを抽出させる操作を実行させる。 一方、String urlを見て、__mode=rssに対応しているブログのurlにマッチしないブログのURLの場合はelseとして、 リンクを抽出させるプログラムは実行させず、違う処理をさせたいです。 (例えば、HTMLからトラックバック先のURLをパースさせる処理など) このようにするには先日の質問のプログラムをどのように改正させればよいでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • RSSファイルのURLとは?

    自分のブログの更新や情報を読み取って 様々なサービスを受けるサイトに登録しました。 その中で、 「RSSファイルのURL」を入れるようなのですが、 何をどう記入すれば良いのかわかりません。 ブログの管理画面に入っても、 自分のブログの「RSS」など書いていません。 どうすればRSSのURLを取得できるのでしょうか?? よろしくお願いします。

  • ストリング文字列をDocumentオブジェクトに格納したい

    文字列として受け取ったxmlをDocumentオブジェクトに格納したいと考えて DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(ファイルパス); とすればファイルを取得してDocumentオブジェクトに入れることはできたのですが、ファイルパスではなくString文字列としてxmlを受け取った場合、どのようにすればDocumentオブジェクトに格納できるのかわかりません。 どのようにすればよろしいのでしょうか?

    • ベストアンサー
    • Java
  • RSSのURLを無料で取得できるブログ会社はありますか?

    RSSのURLを無料で取得できるブログ会社はありますか? 今現在、ライブドアにてブログをやっている者です。 私のブログをアンテナサイトに載せてもらおうと考えております。そこでブログのRSS・URLが必要になりました。 しかしながら、現在使っているプランがライブドアの無料(FREE)版のため、私のブログのRSSのURLが取得できません。そこで質問があります。 Q1:ライブドア以外のその他ブログ開設会社で、『無料にて』RSSのURLを取得できるところはあありますか?  Q2:ライブドアブログのFREE版のまま、RSSのURLを取得する裏技とかないでしょうか? よろしくお願いいたします。

  • RSSデータの読み込み方を教えてください!

    よろしくお願いします...m(_ _)m YahooブログのRSSは、 <?php $xml=simplexml_load_file($yahoo_adrs); for($i=0;$i<=20;$i++){ $title=$xml->channel->item[$i]->title; $title=mb_convert_encoding($title,'SJIS','UTF-8'); } ?> で、タイトル取得が出来ますが、 goo、biglobeブログのRSSは、この方法でも読み込んでくれません。 今は、下記のようなコードで読み込んでます。 $fp=fopen($goo_adrs,'r'); $result=stream_get_contents($fp); fclose($fp); $parser=xml_parser_create('UTF-8'); xml_parse_into_struct($parser,$result,$value,$index); foreach($value as $a){ foreach($a as $b =>$keyb){ if($b=="tag"){ $sw=0; } if($b=="tag" AND $keyb=="TITLE"){ $sw=1; } if($sw==1 AND $b=="value"){ $title=$keyb; } } } この方法は、取りこぼしがある為、 20件のデータが10件だったり15件だったりして不便です。 simplexmlのような方式で、サクッと全部取得できて、 簡単な方法はないでしょうか? ajaxは勉強を始めたばかりで、使えません。 PHPで何とか処理したいと考えてます。 ご指導、よろしくお願いします。 m(_ _)m 現在、下記のブログで利用しています。 http://maybis.sitemix.jp/blog/

    • ベストアンサー
    • PHP
  • gooブログでRSS URLの取得

    gooブログでブログを作成しています。 あるランキングサイトに登録しているのですが、自分のブログが更新されたときに「更新されました」を表示するために RSS URL というものが必要なのですが、RSS URL というものが分かりません。 RSS URL は取得するものなのですか? それともgooブログに登録した時点で発行されているものなのでしょうか。 ランキングサイトに「更新」を表示させたいので教えて下さい。 当方、初心者で難しい言葉(専門用語)はあまり分かりません。

  • RSS URL 取得 判定

    PHPを使って、webサイトのURLからRSSのURLを取得したいと考えています。 curlなどを使って、RSS自体を取得するという意味ではなく、指定されたサイトのRSSの”URL”を取得したいです。 単純に正規表現などでlink要素をチェックして取得することもできますが、その方法だとlink要素などにRSSの情報を記載していないサイトなどからは取得することが出来ません。 100%とまではいかなくても、出来る限り確実な方法でRSSのURLを取得することはできないでしょうか?

    • ベストアンサー
    • PHP
  • RSS URL

    gooブログを開いているものです。 とあるランキングに参加したいのですが、それに参加するにはRSS2.0 1.0の形式を指定してくださいと出るのですが、どうやればRSS形式のURLになるのでしょうか。 他のサイトなどをあたってみた結果、どうやらどこかにRSSのボタンがあるみたいなのですがそのボタンさえも見つかりません。 ボタンの位置、あるいはRSS形式にする方法などわかる方教えて下さい。 宜しくお願いしますm(_)m