Source HTML en c#

davmin -  
 davmin -
Bonjour,

Bonjour,
J'ai un petit soucis dans mon appli. J'ai un contrôle Web qui charge une page et je voudrais récupérer le source HTML... Je procède comme suite :

System.Net.WebClient WC = new System.Net.WebClient();
System.IO.Stream s = WC.OpenRead(Web.Url);
System.IO.StreamReader sr = new System.IO.StreamReader(s);
CodeSource = sr.ReadToEnd();

Je recupère bien ce qui ressemble à un source.. Cependant quand je charge la même page sous IE et que je fais click droit "recuperer la source", j'optiens pas du tout la même chose.. Après examen je me rends compte que le code source obtenu par code 'n'est pas juste... En effet la page que je veux analyser sont les infos d'un de mes comptes internet sur un site de jeux.. Je peux me rendre compte alors dans le source obtenu que je ne suis pas loggé, car j'ai les balises d'inscription par exemple.... Alors que l'affichage dans le controle WebBrowser est lui correcte...

Comment expliquer cette différence d'affichage et de code obtenu ?

13 réponses

Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Tu le dit toi même
dans le source obtenu que je ne suis pas loggé
Dans un cas tu es logé dans l'autre non.
0
davmin
 
Mais pourquoi je ne suis pas loggué, alors qu'a l'affichage je suis loggué..

et j'ai beau me deloggué et me reloggué, l'obtention du source reste toujours la même : non-loggué !
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Le log tu le fait avec un explorateur, qui stocke des cookies et retient dans un fichier spécial tes mots de passe.
Avec le programme, il ne connais pas ces informations là et n'a pas accès aux cookies.
Il faut donc que tu modifies ton code en conséquence, regarde dans la documentation.
0
davmin
 
Quelle doc ?

J'ai beau prendre toutes les propriétés les unes après les autres y'a rien sous les cookies.. Y'a un autre contrôle à utiliser peut etre ?

C'est fou cette différence, commence il fait pour afficher alors s'il ne se sert pas des cookies ?
Qui plus est, après un test sous VB6, ça marche nickel avec le contrôle webbrowser...
0
Freedomsoul Messages postés 538 Statut Membre 97
 
Parce que, si je ne me trompe pas, WebBrowser est basé sur IE, donc si tu es loggué via IE, il doit pouvoir accéder aux données du style cookies
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
davmin
 
Ca semblerait logique en effet :)
Mais comment, c'est la grande question !
0
Freedomsoul Messages postés 538 Statut Membre 97
 
Pour faire ce que tu veux, Char Snipeur t'as indiqué la solution :)

En gros, Il faut que tu simules la requete effectuée pour te loggué et à ce moment là tu pourras récuéprer ce que tu souhaites ;)
0
davmin
 
euh oui merci, mais comment on fait ça ? :O/
0
Freedomsoul Messages postés 538 Statut Membre 97
 
Alors là.... faut chercher dans la docs xD + Googler

Désolé :x
0
Heliotte Messages postés 1561 Statut Membre 92
 
sans vouloir empiéter, regarde si ton log et ton mot de passe passe dans la chaîne d'adresse, genre "http://www.trucmachin?login=tata&mdp=motdepasse"
0
davmin
 
Sur Google je trouve rien du tout :-/

Et pour le login et mdp, c'était une bonne idée mais non ça ne marche pas aussi simplement....

Y'a-t-il une autre solution peut etre ? Autre que le webbrowser je veux dire
0
Freedomsoul Messages postés 538 Statut Membre 97
 
0
Freedomsoul Messages postés 538 Statut Membre 97
 
cherche avec les mots clés "csharp web request" sur google
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
https://docs.microsoft.com/en-us/dotnet/api/system.net.webclient?redirectedfrom=MSDN&view=netframework-4.8
il y a une ligne qui semble intéressante :
client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
ça ajoute une réponse au client, mais en cherchant, tu peux peut être lui dire d'aller chercher les proriétés de IE.
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
0
Freedomsoul Messages postés 538 Statut Membre 97
 
ça c'est pour ajouter l'header avant une requete :) il n'est pas question de récupérer des info's via ça ^^
mais c'est lié à la récupéreration des informations via la requete faite.
0
davmin
 
Mercii pour toutes vos réponses les gars....

Mais soit je suis débile (possiblité la plus probable) soit y'a rien que marche....

J'ai beau essayer tout dans tous les sens rien ne va..

A la base ça devait me prendre 1h ce truc, j'en suis déjà à plein d'heures de recherche et de test... pfffff
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
http://devenir-bh.com/connexion-a-un-espace-membre-avec-curl/
pour te donner une idée de comment se connecter à un site avec un script.
0
davmin
 
Lol je comprends encore moins ce lien :D
0
davmin
 
En fait je suis passé sous VS2008 mais à la base j'avais commencé avec VB6.0 (hey oui il en faut encore).. Là j'ai aucun soucis de source code HTML.. Par contre à chaque chargement de page j'ai une erreur à cause d'un lien sur une map su le site "http://maps.gstatic.com" a cause d'un fichier .js...

On me demande si je veux continuer a excuter le script sur cette page... Oui/Non...
Quoi que je fasse l'erreur revient à chaque chargement de page.. Alors si quelqu'un à une idée de comment faire pour ne plus avoir ce message ?
0