2011-10-05 53 views
0

嘗試從網頁中提取信息以用於Android應用程序。它看起來像信息(歌曲標題)動態地添加到源。在源代碼中有一個佔位符(使用標籤)。當然,瀏覽器顯示正確的歌曲標題。如何從應用程序訪問動態生成的網頁內容?

尋找方向,瞭解如何在我的應用程序中獲得動態生成的信息。

感謝,

,喬爾 -

+0

您是否試圖從webapp生成的網頁獲取數據?或者你有權訪問webapp的源代碼並想修改它?還是有一個API?如果是前者,那麼你可能正在尋找抓取頁面並獲取外業信息。細節將會非常有用。 – birryree

+0

基本上:webapp播放來自廣播電臺的音樂,並顯示當前歌曲的名稱和一些其他相關信息。這些信息會隨着音樂的變化而更新,顯然。我只是試圖讓我掌握當前正在播放的歌曲的名稱(或者當應用程序請求更新時)。 –

+2

*「每當應用程序請求刷新時」* - 好極了,所以我們不僅僅擔心機器製作**早餐,現在他們也**要求**吃早餐呢? –

回答

2

你應該首先弄清楚如何獲得的信息。我會說這很可能是通過Javascript使用AJAX獲取的。看看這個腳本。

一旦你弄清楚了,你可以從Java代碼中重現腳本的行爲(請求正確的地址,相同的方法/參數等)。

如果這是不可能的(或不切實際 - 例如,腳本被混淆),您可以隨時(儘管這有點不好,我不會推薦它)在WebView中加載URL並將自己綁定到合適的AJAX請求使用WebView的java接口;或者在請求完成後加載並檢索信息。

+0

我如何學會識別從HTML調用的腳本? –

+2

@Boswell - javascript代碼包含在HTML中(畢竟它是客戶端)。如果您使用Chrome的內置開發人員工具,或者Firebug for Firefox等,則可以更輕鬆一些。 – birryree

+0

@birryree謝謝,Chrome開發者。工具把我帶到了一個包含我想要的信息的令牌卡。 –

0

將歌曲數據MIGHT嵌入到音頻流中,在這種情況下,您的解碼器/播放器必須能夠提取該信息。

+0

此時我的軟件對音頻不感興趣,只是元數據。什麼會更便宜:加載音頻蒸汽或加載網頁和解析? –

+0

網頁,假設它不只是監視音頻流,並通過JavaScript設置歌曲標題/等。監控音頻流的好處是能夠在開始播放時立即顯示「新」歌曲數據,而不是在您抓取網頁時立即顯示。 – James

相關問題