bonjour a tous, j'ai arriver de recuperer le titre d'une page web. voici un petit code, vous devez donner le chemin de votre page html. ce code permet de recuperer le titre dans un vecteur v et il l'affiche dans un JTextArea.
import javax.swing.text.html.parser.ParserDelegator; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*;
public class ancresearch extends HTMLEditorKit.ParserCallback{ boolean deblokTd=false; static public JFrame frame; static public JTextArea ok; static public JScrollPane scroll; static Vector v=new Vector(); public ancresearch(){} // Méthode appelée quand un tag de début est rencontré
public void handleStartTag(HTML.Tag t, MutableAttributeSet A, int pos){ if((t==HTML.Tag.TITLE)&&(deblokTd==false)){ deblokTd=true; } } public void handleEndTag(HTML.Tag t, int pos){ if(t==HTML.Tag.TITLE) { deblokTd=false; } }
public void handleText (char [] data, int pos){ if(deblokTd==true) { v.addElement(new String(data)+"\n"); } } //--------------------main---------------------------------- public static void main (String args []) { try{ frame=new JFrame(); frame.setTitle("lien et ancre"); ok=new JTextArea(20,30); JScrollPane scroll = new JScrollPane(ok, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); Container contentPane=frame.getContentPane(); frame.getContentPane().add(scroll,BorderLayout.NORTH); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //this.show(); String path="file:/search.html"; URL Url= new URL(path); URLConnection connection =Url.openConnection(); InputStream is = connection.getInputStream(); Reader r = new BufferedReader(new InputStreamReader(is)); HTMLEditorKit htmlKit = new HTMLEditorKit(); HTMLDocument htmlDoc = (HTMLDocument)htmlKit.createDefaultDocument(); // creation d'un parseur HTMLEditorKit.Parser parser = new ParserDelegator(); HTMLEditorKit.ParserCallback callback = new ancresearch(); parser.parse(r, callback, true); htmlDoc.setBase(Url); ok.append("le titre est: "+v+"\n"); frame.pack(); frame.setVisible(true); } catch(MalformedURLException msn){System.out.println("erreur1");} catch(IOException e){System.out.println("erreur2");} }
|