2010-06-04 6 views
0

Je suis redirigé vers une page d'erreur, il semble que j'essaie de demander des informations à partir de cette page et l'écrire dans un fichier txt. Il dit «Désolé, type incompatibilité. Comment puis-je obtenir cette information.Type Incompatibilité sur demande Http de C#

namespace webscrape 
{ 
    class Program 
    { 
     [STAThread] 
     static void Main(string[] args) { 

      try { 
       // Modify as appropriate: 
       const string baseUri = "http://www.rogersmushrooms.com/gallery/default~GID~253~chr~a.asp"; 

       // This cookie container will persist the ASP.NET session ID cookie 
       CookieContainer cookies = new CookieContainer(); 

       // our third request is for the actual webpage after the login. 
       HttpWebRequest request = 
       (HttpWebRequest)WebRequest.Create(baseUri); 
       request.Method = "GET"; 
       request.CookieContainer = cookies; 
       //get the response object, so that we may get the session cookie. 
       HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

       StreamReader reader = 
        new StreamReader(response.GetResponseStream()); 

       // and read the response 
       string page = reader.ReadToEnd(); 

       reader.Close(); 

       // create a writer and open the file 
       TextWriter tw = new StreamWriter("anchor.txt"); 

       // write a line of text to the file 
       tw.WriteLine(page); 

       // close the stream 
       tw.Close(); 

       // our webpage data is in the 'page' string. 
       Console.WriteLine(page); 
      } 

      catch(Exception ex) { 
       Console.WriteLine(ex); 
      } 
     } 

    } 
} 

Répondre

3

Le « incompatibilité de type » vous reffering dans le code HTML est parce qu'ils essaient de vous empêcher de gratter le site en limitant votre agent utilisateur.

ajouter ceci à votre demande avant de faire l'appel:

request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)"; 

Cela devrait vous donner les informations dont vous avez besoin.

+0

Cela va résoudre le problème. – bkaid