2010-11-09 58 views
1

我願意從appengine java應用程序中獲取iTunes公共RSS源。使用Java抓取iTunes RSS源

在開發服務器,這裏是我嘗試:

URL url = new URL("http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topsongs/limit=10/xml"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); 

這是響應:

<?xml version="1.0" encoding="utf-8"?> <feed xmlns:im="http://itunes.apple.com/rss" xmlns="http://www.w3.org/2005/Atom" xml:lang="en"> <id>http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topsongs/limit=10/xml</id> <title>iTunes Store: Top Songs</title> <updated>2010-11-09T12:45:58-07:00</updated> <link rel="alternate" type="text/html" href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewTop?id=38&amp;popId=1"/> <link rel="self" href="http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topsongs/limit=10/xml"/> <icon>http://phobos.apple.com/favicon.ico</icon> <author><name>iTunes Store</name><uri>http://www.apple.com/itunes/</uri></author> <rights>Copyright 2008 Apple Inc.</rights>

有一個鏈接,「HTTP://ax.itunes。顯示了「apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topsongs/limit=10/xml」。它與我給java URL對象的那個URL相同...

如果我在瀏覽器中打開此鏈接,我會得到正確的XML響應。

我試圖設置一個不同的用戶代理,但沒有任何更改。

感謝您的任何幫助。

+0

你得到了什麼HTTP響應代碼?服務器是否發送重定向? – johnstok 2010-11-09 22:39:29

+0

現在沒關係,我發現我的錯誤:在寫入對頁面的響應之前,我正在寫一些調試信息。之後,XML內容被視爲HTML內容,並且由於XML包含一些html重定向代碼......感謝您的時間。 – 2010-11-09 22:51:38

回答

0

這是我的錯誤。

在輸出XML響應之前,我寫了一些「debug」html數據。因此,XML被看作是HTML代碼,但由於XML包含HTML重定向屬性,所以我被重定向了!

謝謝你的時間。

0

如果您在瀏覽器中嘗試「查看源代碼」,您將看到與您在Java代碼片段中看到的相同的結果。

+0

不幸的是,不......我正在嘗試使用Chrome,並且「html view」和「source view」都向我展示了XML。我嘗試使用不同的網址,通常由Apple的RSS Feed生成器提供。 – 2010-11-09 21:10:15