2011-06-03 68 views
1

我已經使用webclient類從網站下載了HTML數據。現在我想讀取標籤之間的數據。我開始瞭解htmlagilitypack,但我不想使用它。 我正在使用下面的代碼來獲取HTML數據。閱讀HTML數據中的數據

WebClient client = new WebClient(); 
     string url = "XXXXXXXXXXXXX" 
     Byte[] requestedHTML; 
     requestedHTML = client.DownloadData(url); 
     string htmlcode = client.DownloadString(url); 

     //client.DownloadFile(url, @"E:\test.html"); 

     UTF8Encoding objUTF8 = new UTF8Encoding(); 
     string html = objUTF8.GetString(requestedHTML); 
     Response.Write(html); 
+4

爲什麼你不想使用HTMLAgilityPack? – DuckMaestro 2011-06-03 07:00:51

+0

@ Muad'Dib得到了一個好點46個問題提出,只有三分之一接受是有點低... – Ivo 2011-06-03 07:06:25

+0

好吧,我會這樣做,只要我得到空閒時間..現在可以有人給這個問題的答案? – 2011-06-03 07:12:08

回答

1

試試這個:

 WebClient client = new WebClient(); 
     string url = "Your URL"; 
     Byte[] requestedHTML; 
     requestedHTML = client.DownloadData(url); 
     string htmlcode = client.DownloadString(url); 

     //client.DownloadFile(url, @"E:\test.html"); 

     UTF8Encoding objUTF8 = new UTF8Encoding(); 
     string html = objUTF8.GetString(requestedHTML);   


     MatchCollection m1 = Regex.Matches(html, @"(<h3>(.*?)</h3>)", 
     RegexOptions.Singleline); 

     foreach (Match m in m1) 
     { 
      string cell = m.Groups[1].Value; 
      Match match = Regex.Match(cell, @"<h3>(.+?)</h3>"); 
      if (match.Success) 
      { 
       string value = match.Groups[1].Value; 
      } 
     } 

的字符串值,會給你的價值= 「芝加哥」

+0

Html數據包含表格標籤。在那個很多存在。其中一個包含我想要檢索的數據。這是我想知道的事情。 – 2011-06-03 07:31:03

+0

你可以給你想要讀取數據的URL以及你想從一行中讀取哪些特定數據? – BreakHead 2011-06-03 07:45:22

+0

URL:http://zipinfo.com/cgi-local/zipsrch.exe?zip=60680 ..在這裏,我將郵政編碼傳遞到網站並獲取相關數據。 HTML數據包含給定Zipcode的城市名稱,這裏的城市名稱是芝加哥(您可以在html數據中看到它)。這是我想要檢索的值。 – 2011-06-03 07:48:28

3

使用正則表達式來代替。

+0

http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html – VMAtm 2011-06-03 07:59:59

+0

巴迪一票從我身邊投票..你是正確的正則表達式是快速.. – BreakHead 2011-06-03 08:33:25