Aide moteur de recherche en Java

Aide moteur de recherche en Java - Java - Programmation

Marsh Posté le 13-02-2011 à 17:02:40    

Bonjour,
j'espere avoir poster dans la bonne section !
Donc voila je dois réaliser un mini moteur de recherche avec un dictionnaire ,j'arrive a placer les liens avec les mots clefs dans le dictionnaire mais je n'arrive pas a rechercher le lien par rapport aux mots clefs ,voici mon code :  
 
 
 
 

Code :
  1. package projet;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.io.Reader;
  6. import java.net.URL;
  7. import java.net.URLConnection;
  8. import java.util.ArrayList;
  9. import java.util.HashMap;
  10. import java.util.StringTokenizer;
  11. import javax.swing.text.BadLocationException;
  12. import javax.swing.text.EditorKit;
  13. import javax.swing.text.SimpleAttributeSet;
  14. import javax.swing.text.html.HTML;
  15. import javax.swing.text.html.HTMLDocument;
  16. import javax.swing.text.html.HTMLEditorKit;
  17.  
  18. public class robot {
  19. @SuppressWarnings("unchecked" )
  20. HashMap<String, ArrayList> Index ;
  21. @SuppressWarnings("unchecked" )
  22. public robot () {
  23. Index = new HashMap<String, ArrayList> ();
  24. }
  25. @SuppressWarnings("unchecked" )
  26. public HashMap<String, ArrayList> Link(String adresse) throws IOException, BadLocationException{
  27. //Charger la page
  28. URL url = new URL(adresse);
  29. URLConnection uconnection = url.openConnection();
  30. Reader rd = new InputStreamReader(uconnection.getInputStream());
  31. //lire le document HTML
  32. HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
  33. doc.putProperty("IgnoreCharsetDirective", new Boolean(true));
  34. kit.read(rd, doc, 0);
  35. //Parcourir la balise lien
  36. HTMLDocument.Iterator it = doc.getIterator(HTML.Tag.A);
  37. while (it.isValid()) {
  38. SimpleAttributeSet s = (SimpleAttributeSet) it.getAttributes();
  39. String link = (String) s.getAttribute(HTML.Attribute.HREF);
  40. if (link != null && link.startsWith("http" ) && link.endsWith(".html" )) {
  41. String Nom=(String) s.getAttribute(HTML.Attribute.TITLE);
  42. //découpage des mots du titre du lien corespondant
  43. if(Nom!=null){
  44. StringTokenizer tmp = new StringTokenizer (Nom," " );
  45. ArrayList<String> tmp2 = new ArrayList<String> () ;
  46.  
  47. while (tmp.hasMoreTokens()){
  48. String tmp3=tmp.nextToken();
  49. if(tmp3.length()>2)
  50. tmp2.add(tmp3);
  51.  
  52. }
  53. Index.put(link, tmp2);
  54. }
  55. }
  56. it.next();
  57. }
  58. return Index;
  59. }
  60.  
  61. }


Merci d'avance et bonne journée a tous !!!!

Message cité 1 fois
Message édité par gilou le 25-03-2011 à 13:34:29
Reply

Marsh Posté le 13-02-2011 à 17:02:40   

Reply

Marsh Posté le 15-02-2011 à 13:54:48    

aucune réponse :( :( :(

Reply

Marsh Posté le 15-02-2011 à 14:58:24    

Commences par nous dire plus précisément ce qui ne marche pas. Perso, je suis déjà pas sûr d'avoir compris ton pb :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-02-2011 à 15:09:48    

billouxs a écrit :

Bonjour,
j'espere avoir poster dans la bonne section !
Donc voila je dois réaliser un mini moteur de recherche avec un dictionnaire ,j'arrive a placer les liens avec les mots clefs dans le dictionnaire mais je n'arrive pas a rechercher le lien par rapport aux mots clefs ,voici mon code :  


Tu peux parcourir les ensembles clé/valeurs via la méthode entrySet d'une Map
http://download.oracle.com/javase/ [...] ySet%28%29
 

Code :
  1. String findLink(String myTag) {
  2.         for (Map.Entry<String, ArrayList> entry : Index.entrySet()) {
  3.              if(entry.getValue().contrains(myTag)) {
  4.                    return entry.getKey();
  5.              } 
  6.        }
  7. }



---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 09-03-2011 à 14:59:32    

Merci pour ta réponse !!!
Par contre la je voudrai parcourir récursivement sur N niveaux ,la page internet donnée en initialisation du programme !
Quelqu'un aurait une idée svp ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed