記憶の掃き溜め

物忘れが激しい大学生の忘備録

JavaでGoogle Newsのフィードを取得する

早めの5月病が来たみたいです、

どうもわせです(^_^;A

今回はJavaXML(RSS)形式のGoogle Newsを読み込み、

RSSのタイトルとその記事へのリンク、記事の更新日時を表示するプログラムを作成しました。

やったこと

プログラムはここを参考に…

[Java]RSSを読み込んで表示するプログラムをさっくり作る - モガ•モボ

いざ解析!と思ったんですがGoogle Newsって表向きにはRSS配信していないんですね(ー'`ー ; )

(Yah○○はご丁寧にリストアップしてくれているのに… - http://headlines.yahoo.co.jp/rss/list

ってな感じでどうしようとりあえずYahooでやるか…と思ってた矢先にこんな記事を発見

GoogleニュースのRSSを取得する方法 - teblog::Diary

内心キタ━━━(゚∀゚)━━━!!!!って感じでしたねw

今回は取得したいRSSのURLをString型の引数として

それを解析して記事のタイトルとそのリンク、記事の更新日時を表示するクラスを作成しました

↓以下ソースコード  Analysis_RSS.java

使用したURL

http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=rss&topic=h

 

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.NodeList;

import org.xml.sax.SAXException;

public class Analysis_RSS {

public Analysis_RSS(String rss_url){

try {

// XMLを読むためのDom APIインスタンス

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.parse(rss_url);

// ドキュメントのrootを取得

Element root = document.getDocumentElement();

// root直下の"channel"に含まれるノードリストを取得

NodeList channel = root.getElementsByTagName("channel");

// "channel"直下の"title"に含まれるノードリストを取得

NodeList title = *1.getElementsByTagName("title");

// タイトルを表示

System.out.println("タイトル : "+ title.item(0).getFirstChild().getNodeValue());

System.out.println("-----------------------------------------");

// 各"item"内のノードリストを取得

NodeList itemlist = root.getElementsByTagName("item");

// itemの数だけループさせて全てのitemを取得

for(int i=0; i < itemlist.getLength(); i++){

Element element = (Element)itemlist.item(i);

// "title","link","pubDate"を取得

NodeList item_title = element.getElementsByTagName("title");

NodeList item_link = element.getElementsByTagName("link");

NodeList item_pdate = element.getElementsByTagName("pubDate");

// 各要素を表示

System.out.println(item_title.item(0).getFirstChild().getNodeValue());

System.out.println(item_link.item(0).getFirstChild().getNodeValue());

System.out.println(item_pdate.item(0).getFirstChild().getNodeValue());

System.out.println("-----------------------------------------");

}

} catch (ParserConfigurationException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

実行すると…(2013/3/30 14:34現在)

タイトル : Top Stories - Google News

-----------------------------------------

石原氏「軽い脳梗塞だった」 議員辞職を否定 - MSN産経ニュース

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNE5nW1pgDemMJG5gtSaUVyGTBo17Q&url=http://sankei.jp.msn.com/politics/news/130330/stt13033013560002-n1.htm

Sat, 30 Mar 2013 04:57:10 GMT

-----------------------------------------

普天間の返還時期「交渉中」 首相、期限設定へ意欲 - 朝日新聞

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGdO2_qQCvRNH8KaAwKSSCxfR9RVg&url=http://www.asahi.com/politics/update/0330/TKY201303300042.html

Sat, 30 Mar 2013 05:04:35 GMT

-----------------------------------------

首都高の上、ぐるり「天空庭園」 東京・目黒に完成 - 朝日新聞

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGc6ECQspjcNOBUOhOaXXdcNuWshA&url=http://www.asahi.com/national/update/0330/TKY201303300031.html

Sat, 30 Mar 2013 04:07:29 GMT

-----------------------------------------

葛飾区にキャプテン翼の銅像完成!街の活性化期待 - テレビ朝日

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNFrHgpv1smiyGOpn_AMeL-GQCZs8g&url=http://news.tv-asahi.co.jp/news_society/articles/000002854.html

Sat, 30 Mar 2013 03:51:48 GMT

-----------------------------------------

オウム死刑囚3人証人尋問決定 平田信被告の裁判 - テレビ朝日

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNErZcutJ2i_czLi5SGzZ78vgr6OSA&url=http://news.tv-asahi.co.jp/news_society/articles/000002836.html

Fri, 29 Mar 2013 23:06:18 GMT

-----------------------------------------

総理官邸初の一般公開 地元の中学生を招待 - テレビ朝日

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNG7HQC6EklQ4tycVr2bdzSNnOHimQ&url=http://news.tv-asahi.co.jp/news_politics/articles/000002857.html

Sat, 30 Mar 2013 05:18:14 GMT

-----------------------------------------

新型出生前診断、勧誘はがきの会社が事業を中止 - 読売新聞

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNF8oH7nwpZUi1vOXn-dmR998e-ueA&url=http://www.yomiuri.co.jp/science/news/20130330-OYT1T00399.htm?from%3Dylist

Sat, 30 Mar 2013 01:48:16 GMT

-----------------------------------------

首に複数の切り傷…ベトナム人女性殺害で捜査本部 - テレビ朝日

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNHdgAve8hRJKXJ8iCg4V_pa43iOzw&url=http://news.tv-asahi.co.jp/news_society/articles/000002845.html

Sat, 30 Mar 2013 03:51:48 GMT

-----------------------------------------

東日本大震災:コウナゴ漁の試験操業開始−−相馬沖 /福島 - 毎日新聞

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNEVFyBrDK3elVt8cf2ay5Q4jnmjZQ&url=http://mainichi.jp/area/fukushima/news/20130330ddlk07040150000c.html

Sat, 30 Mar 2013 01:33:25 GMT

-----------------------------------------

汚染水処理新設備きょうから試運転 福島第一原発 - テレビ朝日

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNFQW5_913lmughUoE2x7zSizjDCPA&url=http://news.tv-asahi.co.jp/news_society/articles/000002846.html

Sat, 30 Mar 2013 03:51:47 GMT

-----------------------------------------

とまあこんな感じに最低限のことはできました(^_^;

Java Rome

とまあこんな感じで一通りできてやったーなんて一段落ついてたら

Java Romeというものを見つけまして、どうもコイツを使うと

もっと簡単にRSSを扱えるらしいので検索_φ(。_。*)

JavaのRSSライブラリ、ROMEを使ってみる

……

………めっちゃ簡単じゃないすかΣ(゜∀゜ノ)ノ

またいい物を見つけてしまった…w

今後の目標

  • 複数のRSSから記事を引っ張ってきて、それを日時順に整列する
  • 最終的にはGUI

同ゼミの友達がめっちゃ頑張ってるので俺も今からエンジンフルスロットルで頑張ろう(ノ゜0゜)ノ

*1:Element)channel.item(0