2013-06-04 117 views
0

我試圖從網站獲取特定信息。現在,我有這個HTML字符串,你可以看到我的代碼,網站的HTML源代碼放在「responseText」。我知道我可以用If的說法做到這一點,但這會很枯燥。我是新手,所以我不知道我在做什麼。我敢肯定,必須有另一種更簡單的方法來從網站檢索信息...這是c#的Windows商店,所以我不能使用webclient。這段代碼得到的字符串,但不是有一種方法,我可以刪除的HTML代碼,只留下變量或東西?我只想做一個網頁,我知道我想要的變量,因爲我查看了網頁的html代碼。這不是一種用網站上的信息來請求變量列表的方法嗎?我只是有點迷失在這裏。所以基本上我只想從c#中的網站獲取特定信息,我正在爲Windows Store製作應用程序。從網站獲取特定信息C#windows store應用程序

 StringBuilder sb = new StringBuilder(); 
    // used on each read operation 
    byte[] buf = new byte[8192]; 
    // prepare the web page we will be asking for 
    HttpClient searchClient; 
    searchClient = new HttpClient(); 
    searchClient.MaxResponseContentBufferSize = 256000; 
    HttpResponseMessage response = await searchClient.GetAsync(url); 
    response.EnsureSuccessStatusCode(); 
    responseText = await response.Content.ReadAsStringAsync(); 
+0

大多數開發人員可能會使用正則表達式來解析來自網站的HTML響應並提取感興趣的值。看看使用正則表達式。 –

+0

@MikePanter:使用正則表達式解析HTML的開發人員應該非常清楚這種方法的脆弱程度。我寧願使用HTML Tidy之類的東西。 –

+0

請注意,您應該使用''語句來確保正確處理您的'HttpClient'和'HttpResponseMessage',並且根本不使用'buf'。另外,請考慮使用'HttpClient.GetStringAsync'而不是直接使用響應消息。 –

回答

0

此代碼得到的字符串,但不是有一種方法可以讓我刪除HTML代碼,只留下變量還是什麼?

什麼「變量」?你得到了HTML - 這是來自Web服務器的響應。如果您想剝離該HTML,那取決於您。您可能需要使用HTML Tidy以使它更愉快,但從HTML提取相關信息的業務取決於您。 HTML的設計不是以機器可讀的方式作爲原始信息來源 - 它是爲了向人類呈現標記。

您應該調查這些信息是否在更加機器友好的源代碼中可用,且沒有演示信息等。例如,可能有某種方法可以將數據作爲JSON或XML獲取。

+0

所以你說我需要做if語句並對其進行格式化,沒有其他更簡單的方法嗎? – user1713352

+0

@ user1713352:我不知道「製作if語句並對其進行格式化」是什麼意思 - 部分原因是因爲您很少指示您要做什麼。但是不,從HTML中提取信息(特別是你無法控制的HTML)並不是特別簡單 - 這就是爲什麼我建議你尋找以更友好的格式發佈的相同信息。 –