2013-05-18 54 views
0

我試圖重新創建一箇舊的C#應用​​程序,從一個在線廣播電臺流。舊的問題是,它加載了整個網頁只是爲了顯示它的某個區域,這需要更多的資源,我認爲有必要。所以,現在我重寫整個應用程序,並正在尋找一種方式,我怎麼能檢索網站上從下面的代碼文本:C#從網頁中的對象中獲取文本

<div id="now" style="visibility: visible; display: block;"> 
    <div class="scroll" style="margin-left: 0.000px;"> 
     <div id="title">SONG_NAME</div> 
     <div id="artist">SONG_ARTIST</div> 
    </div> 
</div> 

這件作品是不斷在頁面上更新,名稱和當前歌曲的藝術家。

id =「title」是歌曲的名稱,id =「artist」是歌曲的藝術家。

我想檢索名稱和藝術家每說,10秒左右。

任何想法使用什麼代碼?

+0

如果你不擁有網站,我認爲沒有辦法做到這一點,因爲你必須像任何其他用戶一樣請求網站。 – sergioadh

回答

0

您可能需要將整個頁面拉回。主要考慮是:

  • 你可以要求HTML作爲uncompressed,並使用HttpWebResponse.GetResponseStream打開流,然後讀取,直到你需要的(你需要爲你去分析文本)塊的結束,並最終致電HttpWebResponse.Close關閉流並釋放連接
  • 如果整個響應被壓縮,則在解壓縮之前無論如何都可以更有效地獲取整個事件。

你需要測試哪一個更有效率的特定頁面,你正在刮。

所以通常的方法是檢索整個html流,然後使用正則表達式來找到你需要的塊,並保持你的代碼簡單。

建議

如果你想保持它真的簡單再看看HtmlAgilityPack,這甚至上的NuGet與Visual Studio 2012年它與HTML拼搶非常簡單的工作使用。

+0

非常感謝,我確實會看看HTMLAgilityPack,因爲它似乎是我正在尋找的東西。我更喜歡使用較少但高效的編碼來拖拽某個人的電腦來傳送某些音頻,這並不是人們想要的。此應用程序主要是建立一個程序員配置文件,併爲我研究C# - > HTML通信和數據提取。 – Hurly