2009-07-14 14 views
5

Próbuję użyć języka C#, aby uzyskać dostęp do zawartości strony internetowej. Na przykład chcę pobrać tekst treści głównej strony głównej Google.Dostęp do zawartości strony sieci Web za pomocą C#

Wiem, że jest to wykonalne w języku C# z kontrolą przeglądarki. Ale nie mogłem znaleźć dobrego, prostego przykładu robienia tego. Wszystkie zasoby, które znalazłem online, obejmują tworzenie formularzy i GUI, których nie potrzebuję, potrzebuję tylko dobrej starej aplikacji konsolowej.

Jeśli ktoś może zapewnić prosty, oparty na konsolach fragment kodu, który spełni powyższe warunki, będzie to bardzo docenione.

Odpowiedz

12

W rzeczywistości WebBrowser to kontrolka GUI używana w przypadku, gdy użytkownik chce wizualizować stronę internetową (osadzanie i zarządzanie programem Internet Explorer w aplikacji Windows). Jeśli wystarczy, aby uzyskać zawartość strony internetowej można użyć klasy WebClient:

class Program 
{ 
    static void Main(string[] args) 
    { 
     using (var client = new WebClient()) 
     { 
      var contents = client.DownloadString("http://www.google.com"); 
      Console.WriteLine(contents); 
     } 
    } 
} 
+3

To nie zadziała, jeśli witryna jest generowana dynamicznie w javascript (np. Jeśli źródłem html jest tylko plik .js), prawda? – Saobi

+0

+1 Ładnie wykonane. –

+1

@Saobi, masz rację, javascript nie zostanie wykonany tą techniką. Otrzymasz tylko tekstową reprezentację strony internetowej. –

1

można zrobić coś takiego:

Uri u = new Uri(@"http://launcher.worldofwarcraft.com/alert"); 
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(u); 
HttpWebResponse res = (HttpWebResponse)req.GetResponse(); 
System.IO.Stream st = res.GetResponseStream(); 
System.IO.StreamReader sr = new System.IO.StreamReader(st); 
string body = sr.ReadToEnd(); 
System.Console.WriteLine("{0}", body); 

powyższy kod pokazuje komunikat konserwacji WoW USA (jeżeli wiadomość została wysłana)

1

Można również korzystać z biblioteki Watin załadować i łatwo manipulować stronami internetowymi. Zostało to zaprojektowane jako biblioteka testowa dla interfejsów internetowych. Aby go użyć, pobierz najnowszą oficjalną stronę http://watin.sourceforge.net/. W języku C# następujący kod w aplikacji konsoli da ci kod HTML strony głównej Google (jest to zmodyfikowane na podstawie przykładu rozpoczęcia w witrynie WatiN). Biblioteka zawiera także wiele innych przydatnych metod uzyskiwania i ustawiania różnych części strony, podejmowania działań i sprawdzania wyników.

using System; 
    using WatiN.Core; 

    namespace Test 
    { 
     class WatiNConsoleExample 
     { 
     [STAThread] 
     static void Main(string[] args) 
     { 
      // Open an new Internet Explorer Window and 
      // goto the google website. 
      IE ie = new IE("http://www.google.com"); 

      // Write out the HTML text of the body 
      Console.WriteLine(ie.Text); 


      // Close Internet Explorer and the console window immediately. 
      ie.Close(); 

      Console.Readkey(); 
     } 
     } 
    } 
0

Skrobanie ekranu Google i jak wspomniano powyżej, użyj HttpWebRequest. Kiedy robisz cokolwiek, co robisz, polecam używanie Skrzypka, aby pomóc Ci dowiedzieć się, co się naprawdę dzieje.

Powiązane problemy