我除了下載ROME還下載了ROME Fetcher
這樣多了一些函式可以用比較方便
抓取RSS
FeedFetcher feedFetcher = new HttpURLFeedFetcher();
SyndFeed feed = feedFetcher.retrieveFeed(new URL(feedUrl));//feedUrl是RSS的來源
分析RSS
第一種寫法
for (java.util.Iterator iter = feed.getEntries().iterator(); iter.hasNext(); ) {
SyndEntry entry = (SyndEntry) iter.next();
System.out.println(entry.getLink() + entry.getTitle() + entry.getPublishedDate());
}
第二種寫法
List entryList = feed.getEntries();差異在使用不同的物件類型而已
for(int i=0;i<entryList.size();i++)
{
entry = (SyndEntry) entryList.get(i);
System.out.println(entry.getLink() + entry.getTitle() + entry.getPublishedDate());
}
ROME的使用也很直覺
getLink()就是取得RSS裡<link>內的值
getTitle()也是同樣的道理
大部分網站發佈的格式都差不多
有不一樣的地方的話大概是在<pubDate>的時間格式
ROME已經將大部分的時間格式都加進去了
如果發生因為時間格式不符合而產生錯誤的話
可以增加一個rome.properties在classpath底下
內容加入datetime.extra.masks=EEE dd MMM yyyy HH:mm:ss z
這裡的日期格式就是不符合內建的時間格式
有多個話就用分隔線(|)隔開
沒有留言:
張貼留言