Question

J'essaie de télécharger le code HTML source d'un site Web à l'aide de la méthode WebClient.DownloadData () .

Ma méthode est supposée me donner la source:

public string GetSite(string URL)
    {
        Uri Site = new Uri(URL);
        byte[] lol = Client.DownloadData(Site);
        SiteSource = Encoding.ASCII.GetString(lol);
        return SiteSource;                    
    }

J'ai vérifié TRIPLE et lorsque j'écris la même adresse exacte du paramètre d'URL que j'envoie cette méthode, mes programmes téléchargent quelque chose d'autre.

Appuyez sur ctrl + U dans Firefox pour voir le code source me montrer ce que je veux voir ( encore, HTML simple ), mais dans mon logiciel, je vois quelque chose de totalement différent.

Qu'est-ce qui donne?

FOR CLARITY :

Imaginez dans Firefox que vous écriviez www.google.com et que vous voyiez la source dans Firefox:

<html>
   <head>
   </head>
   <body> 
       <h1>Hello!</h1>
   </body>
</html>

Mais si je devais utiliser la méthode DownloadData pour exactement la même URL , mon programme téléchargerait un code source comme celui-ci:

<html>
   <head>
   </head>
   <body> 
       <h1>Bonjour!</h1>
   </body>
</html>
Était-ce utile?

La solution

Il est possible que le site détecte le navigateur et diffuse un code HTML différent selon qu'il perçoit le client comme étant Firefox, IE, un robot d'indexation Web, etc.

Autres conseils

Le site peut utiliser des cookies définis dans Firefox, l'en-tête de l'agent utilisateur ou d'autres en-têtes HTTP pour décider du contenu à vous envoyer.

Étant donné que votre programme C # envoie des données différentes de celles de Firefox, le site peut envoyer un contenu différent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top