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

Langage Java Discussion :

Programme a mettre dans une boucle


Sujet :

Langage Java

  1. #21
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Points : 110
    Points
    110
    Par défaut
    si c'est pas propre et que ça marche ça me va.

    mais j'ai mis tout un peu a l'arrache et j'ai des erreurs :s

    tu peux me mettre le code en entier avec tes rajouts stp ? si c'est pas trop te demander

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 28
    Points : 32
    Points
    32
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    import java.util.ArrayList;
    import java.util.List;
     
     
     
    /**
     * Réaliser un robot qui récupère des emails sur internet et y associe les mots clés de la page
     *  - le robot doit extraire lees URL qu'il trouve et parcourir chacune d'elle
     *  - le robot doit extraire les mots clés ainsi que les emails et les stocker en BDD
     *  
     */
    public class robot {
     
       	private List<String> visitedURL = new ArrayList();
    	 public static void main(String[] args) {	
    	        collectURL("http://www.bde-ges.com");
    	 }
     
    	 private void collectURL(String myurl){
    		  try {
                 // Pour charger la page
                 URL url = new URL(myurl);
                 URLConnection uconnection = url.openConnection();
                 Reader rd = new InputStreamReader(uconnection.getInputStream());
                 // On lit le document
                 EditorKit kit = new HTMLEditorKit();
                 HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
                 doc.putProperty("IgnoreCharsetDirective", new Boolean(true));
                 kit.read(rd, doc, 0);
                 // Parcour des balises de lien
                 HTMLDocument.Iterator it = doc.getIterator(HTML.Tag.A);
                 while (it.isValid()) {
                     SimpleAttributeSet s = (SimpleAttributeSet) it.getAttributes();
                     String link = (String) s.getAttribute(HTML.Attribute.HREF);
                     if ((link != null)&&(!this.visitedURL.contains(link))  {
                         // ajout des liens trouvés à la List
                     	System.out.println(link);
                     	this.visitedURL.add(link);
                     	collectURL(link);
                     }
                     it.next();
                 }
    		 } catch (BadLocationException ex) {
                 Logger.getLogger(robot.class.getName()).log(Level.SEVERE, null, ex);
             } catch (IOException ex) {
                 Logger.getLogger(robot.class.getName()).log(Level.SEVERE, null, ex);
    		 }
    	 }
    }
    dis moi si ça marche..

  3. #23
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Il vaut mieux utiliser un HashSet.
    1. Ça garantira l'unicité.
    2. Ça sera nettement plus performant au parcours ; et sur le web, le nombre d'url va rapidement être énorme, c'est donc sensible.

  4. #24
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Points : 110
    Points
    110
    Par défaut
    des erreurs sur les deux "this"
    => cannot use this in a static context

  5. #25
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Points : 110
    Points
    110
    Par défaut
    j'ai retiré les this et mis en static, ça fonctionne niquel !!!!

    Merci !!

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.io.Reader;
    import java.net.URLConnection;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.EditorKit;
    import javax.swing.text.SimpleAttributeSet;
    import javax.swing.text.html.HTML;
    import javax.swing.text.html.HTMLDocument;
    import javax.swing.text.html.HTMLEditorKit;
     
    public class robot {
     
       	private static List<String> visitedURL = new ArrayList();
    	 public static void main(String[] args) {	
    	        collectURL("http://www.bde-ges.com");
    	 }
     
    	 private static void collectURL(String myurl){
    		  try {
                 // Chargement de la page
                 URL url = new URL(myurl);
                 URLConnection uconnection = url.openConnection();
                 Reader rd = new InputStreamReader(uconnection.getInputStream());
                 // Lecture du document
                 EditorKit kit = new HTMLEditorKit();
                 HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
                 doc.putProperty("IgnoreCharsetDirective", new Boolean(true));
                 kit.read(rd, doc, 0);
                 // Parcour des balises de lien
                 HTMLDocument.Iterator it = doc.getIterator(HTML.Tag.A);
                 while (it.isValid()) {
                     SimpleAttributeSet s = (SimpleAttributeSet) it.getAttributes();
                     String link = (String) s.getAttribute(HTML.Attribute.HREF);
                     if ((link != null)&& !(visitedURL.contains(link))){
                         // ajout des liens trouvés à la List
                     	System.out.println(link);
                     	visitedURL.add(link);
                     	collectURL(link);
                     }
                     it.next();
                 }
    			 } catch (BadLocationException ex) {
    		         Logger.getLogger(robot.class.getName()).log(Level.SEVERE, null, ex);
    		     } catch (IOException ex) {
    		         Logger.getLogger(robot.class.getName()).log(Level.SEVERE, null, ex);
    		     }
    	 }
    }
    simple question tu saurais faire pour récupérer aussi sur l'URL en question les emails et les mots clé ?

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 28
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par oliviernouhi Voir le message
    simple question tu saurais faire pour récupérer aussi sur l'URL en question les emails et les mots clé ?
    Cool si ça marche, mais c'est vrai que stocker les url dans une list c'est pas top.
    en quoi les mail sont lié aux url? et les mots clef se sont ceux dans les META informations?

  7. #27
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Points : 110
    Points
    110
    Par défaut
    c'est un exercice d'école en faite.

    je dois print (comme j'ai fait avec les url) tous les mails que je rencontre, et tout les mots clé que je rencontre dans les divers URL.

    je dois simplement les récupérer betement sans les classé et savoir d'ou il viennent.

    je pense que pour les mails c'est : [a-z0-9._-]+@[a-z0-9._-]{2,}\\.[a-z]{2,4}

    et pour les mots clé : meta keywords

    mais j'ai aucune idée comment les récupérers.

    Tu saurais m'aider stp encore ?

    voici mon code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.URL;
    import java.io.Reader;
    import java.net.URLConnection;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.EditorKit;
    import javax.swing.text.SimpleAttributeSet;
    import javax.swing.text.html.HTML;
    import javax.swing.text.html.HTMLDocument;
    import javax.swing.text.html.HTMLEditorKit;
     
    public class robot {
     
       	 private static List<String> visitedURL = new ArrayList();
     
    	 public static void main(String[] args) {	
    	        collectURL("http://www.bde-ges.com");
    	 }
     
    	 private static void collectURL(String myurl){
    		  try {
                 // Chargement de la page
                 URL url = new URL(myurl);
                 URLConnection uconnection = url.openConnection();
                 Reader rd = new InputStreamReader(uconnection.getInputStream());
                 // Lecture du document
                 EditorKit kit = new HTMLEditorKit();
                 HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
                 doc.putProperty("IgnoreCharsetDirective", new Boolean(true));
                 kit.read(rd, doc, 0);
                 // Parcour des balises de lien
                 HTMLDocument.Iterator it = doc.getIterator(HTML.Tag.A);
                 while (it.isValid()) {
                     SimpleAttributeSet s = (SimpleAttributeSet) it.getAttributes();
                     String link = (String) s.getAttribute(HTML.Attribute.HREF);
                     if ((link != null)&& !(visitedURL.contains(link))){
                         // ajout des liens trouvés à la List
                     	System.out.println(link);
                     	ecrire("C:/Users/log.txt", link);
                     	visitedURL.add(link);
                     	collectURL(link);
                     }
                     it.next();
                 }
    			 } catch (BadLocationException ex) {
    		         Logger.getLogger(robot.class.getName()).log(Level.SEVERE, null, ex);
    		     } catch (IOException ex) {
    		         Logger.getLogger(robot.class.getName()).log(Level.SEVERE, null, ex);
    		     }
    	 }
    }

  8. #28
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 28
    Points : 32
    Points
    32
    Par défaut
    désolé, je ne m'y connais pas assez. Je t'ai juste aidé pour la récurence le reste c'est toi qui me l'a appris ^^

  9. #29
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Points : 110
    Points
    110
    Par défaut
    ok merci je fais un nouveau post

    encore merci pour tout

  10. #30
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Citation Envoyé par oliviernouhi Voir le message
    j'ai retiré les this et mis en static, ça fonctionne niquel !!!!
    Il serait de bon aloi de ne pas tout mettre en static. Il vaut nettement mieux instancier un objet ! Et en l'occurrence, vu que c'est un exercice, la note risque d'être moins bonne avec du static

  11. #31
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Points : 110
    Points
    110
    Par défaut
    ok merci pour l'information

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Débutant] Faire appel à un programme plusieurs fois dans une boucle for
    Par hibouchka dans le forum MATLAB
    Réponses: 9
    Dernier message: 01/03/2011, 17h09
  2. Mettre un timeout dans une boucle
    Par yann123456 dans le forum Langage
    Réponses: 0
    Dernier message: 27/07/2010, 16h11
  3. comment mettre un tableau dans une boucle et sur la meme page
    Par pikkolina dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/05/2009, 19h21
  4. Réponses: 12
    Dernier message: 17/10/2008, 10h45
  5. Mettre une tempo dans une boucle
    Par lilyla dans le forum MATLAB
    Réponses: 2
    Dernier message: 12/02/2007, 17h04

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