2010-03-07 142 views
3

我試圖訪問網頁上的信息。我第一次做到這一點。 問題在於它太慢了。只在一頁上執行此操作,在瀏覽器上加載速度非常快,但在這裏永遠不會消失。 我唯一需要的就是頁面背後的HTML,所以我得問,我的代碼是以某種方式下載圖片的嗎? 任何幫助都可以加速這個過程。花費太長時間來加載頁面與HttpWebResponse

 string url; 

     HttpWebRequest pedido = (HttpWebRequest)WebRequest.Create(url); 

     HttpWebResponse resposta = (HttpWebResponse)pedido.GetResponse(); 
     //On the line above it takes forever to load. 

     StreamReader SR = new StreamReader(resposta.GetResponseStream()); 


     string html; 
     string tituloTemp = ""; 

     do 
     { 
      html = SR.ReadLine(); 
      if (html.Contains("<title>")) 
       tituloTemp = html; 

     } while (!(html.Contains("<title>"))); 
     SR.Close(); 
+0

你確定它真的在瀏覽器中加載速度如此之快嗎?在測試之前是否清除了瀏覽器緩存? – Aaronaught 2010-03-07 18:04:11

+0

是的。大約一秒鐘。該程序大約需要8秒鐘。 – elvispt 2010-03-07 18:06:32

回答

1

使用Fiddler檢查交易。

它可能是一個DNS查詢超時或認證質詢。通過Fiddler,您可以看到瀏覽器和應用程序傳輸的時間分類。一切都會變得清晰。

0

你的問題很可能是ReadLine(),它只會在它換行時返回。如果頁面沒有換行符,那麼您可能會看到超時。您也正在掃描兩次,因此您應該重新考慮解析方法。

我建議您將整個響應讀入內存,然後解析標籤。這些鏈接說話C#解析器可能給你一個更強大的解決方案:

Looking for C# HTML parser

What is the best way to parse html in C#?

相關問題