IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

byte size of HTMLElement


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Par défaut byte size of HTMLElement
    Salut, j'ai affaire a un cas de figure qui malgré sa simplicité apparente ne l'est pas .

    j'ai récupérer un HTML ELEMENT qui est en faite une image.png
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public HtmlElement GetElementByCSS(string classname)
            {
                return (HtmlElement) this.webBrowser1.Document.All
                .Cast<HtmlElement>()
                .Where(c => classname.Equals(c.GetAttribute("className"), StringComparison.InvariantCultureIgnoreCase));
            }
    Maintenant ce que je voudrait en faire, c'est calculer la taille en byte de ce joli fichier, sinon existe t-il un moyen pour calculer un MD5 directement?

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Déjà ton code est faux. Tu convertis un IEnumerable<HtmlElement> en HtmlElement. Il faut juste passer par la méthode First.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Where(c => classname.Equals(c.GetAttribute("className"), StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();
    Ensuite un HtmlElement c'est pas l'objet en lui-même, c'est juste la balise, le texte.
    Pour connaitre la taille de l'image tu récupères la valeur de l'attribut src, tu récupères l'image avec WebClient et paf tu aura la taille en byte.

    Pour le md5 regarde la classe MD5CryptoServiceProvider

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    Déjà ton code est faux. Tu convertis un IEnumerable<HtmlElement> en HtmlElement. Il faut juste passer par la méthode First.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Where(c => classname.Equals(c.GetAttribute("className"), StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();
    Ensuite un HtmlElement c'est pas l'objet en lui-même, c'est juste la balise, le texte.
    Pour connaitre la taille de l'image tu récupères la valeur de l'attribut src, tu récupères l'image avec WebClient et paf tu aura la taille en byte.

    Pour le md5 regarde la classe MD5CryptoServiceProvider
    ouch . Ca complique la tache
    Soit l'image en question est une image générer par un script php(script pour pseudo OCR) elle générée chaque fois une image différente grâce au meme lien.
    donc si mon webbrowser la télécharge, et puis mon WebClient aussi, ils n'auront pas forcement la meme image.

    j'espère que j'aurais pas a changer le topic en "CCM FAIRE UN OCR?"

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Normalement l'URL d'un captcha change tout le temps non ?

    Je veux dire par exemple : captcha.php?id=totolagrenouille
    donnera toujours la même image.

    Par contre quand tu recharges la page c'est l'id qui change.

    Vérifies si c'est pas comme ça chez toi.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    Normalement l'URL d'un captcha change tout le temps non ?

    Je veux dire par exemple : captcha.php?id=totolagrenouille
    donnera toujours la même image.

    Par contre quand tu recharges la page c'est l'id qui change.

    Vérifies si c'est pas comme ça chez toi.
    non, l'exo est simple. pas d'id : tiens regarde http://www.rotop100.com/scripts/lol_internet.php

    Bon je vais bien expliquer l'exo

    ce pseudo captcha ne peut générer que 4 images
    une qui dit poring,novice,sniper ou alchemist.
    Donc ma tactique , c'est de , au lieu de comparer le texte (ce qui dépasse mon niveau de très très loin.) je voudrais comparer la byte size (en kb ou en octet) des images pour a chaque fois faire un check, dans l'ordre de savoir laquelle a été générer.

    seulement, j'ai beaucoup de mal a accéder a la taille de l'image (taille du fichier, pas résolution).

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ben pour connaitre la taille il faut la télécharger.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WebClient client = new WebClient();
    byte[] image = client.DownloadData(new Uri("http://www.rotop100.com/scripts/lol_internet.php"));
    int size = image.Length

    Après pour faire ce que tu veux en fonction de ton WebBrowser je sais pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. self BYTE SIZES
    Par zyr57 dans le forum Général Python
    Réponses: 11
    Dernier message: 12/05/2009, 17h56
  2. [PEAR][Mail] Fatal Error : Allowed memory size of 8388608 bytes exhausted
    Par bigben89 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 20/10/2008, 18h01
  3. [12.5 ]Row size (2058 bytes) could exceed row size limit, which is 1962 bytes.
    Par dngaya dans le forum Adaptive Server Enterprise
    Réponses: 1
    Dernier message: 04/12/2007, 13h51
  4. Réponses: 3
    Dernier message: 08/08/2007, 19h08
  5. [Librairies] zip.lib.php Fatal error: Allowed memory size of 8388608 bytes exhausted
    Par manaboko dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 22/05/2006, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo