miss5 | bonjour,
je suis en train de compiler un programme java dont voici le code:
Code :
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package htmlparser;
- /**
- *
- * @author sabrina
- */
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileWriter;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.text.DecimalFormat;
- import java.util.HashMap;
- import java.util.Vector;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import org.htmlparser.Parser;
- import org.htmlparser.filters.NodeClassFilter;
- import org.htmlparser.tags.LinkTag;
- import org.htmlparser.tags.TitleTag;
- import org.htmlparser.util.NodeList;
- import org.htmlparser.util.ParserException;
- import org.htmlparser.beans.StringBean;
- import java.util.Enumeration;
- import java.io.IOException;
- public class HtmlParser {
- /**
- * @param args the command line arguments
- */
- // define l'url de site à aspirer
- private static final String URLSite = "";
- //extensions permises à analyser
- private static final Vector ExtensionPermises = new Vector();
- static {
- ExtensionPermises.add(".html" );
- ExtensionPermises.add(".htm" );
- ExtensionPermises.add(".jsp" );
- ExtensionPermises.add(".php" );
- ExtensionPermises.add(".aspx" );
- }
- // propriétés de bases
- private URL SiteInitial;
- private String Domaine;
- HashMap URLVisité = new HashMap();
- Vector URLaVisité = new Vector();
- Vector URLpage = new Vector();
- Vector URLp = new Vector();
- Vector liste_page = new Vector();
- Vector liste_page_f = new Vector();
- File fichier = new File("fichier.txt" );
-
- int i=0;
- // options d'aspiration
- private final int maxURLaVisité = 20;
- private final boolean MemeDomaine = true;
- // verbosity options
- private final boolean reduit = true;
- private final boolean URLInvalide = false;
- private final boolean DomaineInvalid = false;
- private final DecimalFormat df;
- private String format(String string) { return string.replaceAll("\n", "" ).replaceAll("\\s+", " " ).trim(); }
- private String base(URL url) { return url.getProtocol() + "://" + url.getHost() + url.getFile(); }
- public HtmlParser(String url) {
-
-
- // initialisation de propriété de l'aspirateur
- try {
- SiteInitial = url.startsWith("www." ) ? new URL("http://"+url) : new URL(url);
- } catch (MalformedURLException e) {
- e.printStackTrace();
- }
-
- URLaVisité.add(SiteInitial);
- String[] domain = SiteInitial.getHost().split("\\." );
- Domaine = domain[domain.length - 2] + "." + domain[domain.length-1];
- StringBuffer format = new StringBuffer();
- for (int j = 0; j < maxURLaVisité ; j++) format.append("0" );
- df = new DecimalFormat(format.toString());
- }
- public void run() {
-
- // Aspirer le web
- while (URLVisité.size() <= maxURLaVisité && URLaVisité.size() != 0) {
- try {
- if (URLVisité.get(new URL(base((URL)URLaVisité.get(0)))) == null) visit((URL)URLaVisité.get(0));
- } catch (MalformedURLException e) {}
- URLaVisité.remove(0);
- }
- /*if (!reduit) {
- System.out.println("" );
- Set set = URLVisité.entrySet();
- Iterator x = set.iterator();
- int num = 1;
- //while ( i.hasNext() ) {
- // Entry entry = i.next();
- // System.out.println(df.format(num++) + " url : " + entry.getKey().toString() + " - title : " + format(entry.getValue()));
- //}
- }*/
- }
- private void visit(URL url) {
- if ( URLVisité.size() >= maxURLaVisité ) return;
- String path = url.getPath();
- int lastDot = path.lastIndexOf("." );
- if(lastDot > 0 && !ExtensionPermises.contains(path.substring(lastDot))) return;
- if (url.toString().startsWith("mailto:" )) return;
-
- /*if (MemeDomaine) {
- String[] domain = url.getHost().split("\\." );
-
- if ( domain.length < 3 ) return;
- if ( !Domaine.equals(domain[domain.length - 2] + "." + domain[domain.length-1])) {
- if (reduit && DomaineInvalid)
- System.err.println("Not same domain : (" + domain[domain.length - 2] + "." + domain[domain.length-1] +" ) " + url.toString());
- return;
- }
- }*/
- // créer une instance page et ajouter son url et l'url père
- page1 p1=new page1();
- p1.set(url.toString(),url.getHost());
- try {
- // extraire le titre de la page et les liens
- Parser parser = new Parser(url.toString());
- NodeList titreList = parser.parse(new NodeClassFilter (TitleTag.class));
- String titre = (titreList.size() != 0) ? ((TitleTag) titreList.elementAt(0)).getTitle() : "";
- // extraire le texte de la page
- StringBean sb = new StringBean ();
- sb.setLinks (false);
- sb.setReplaceNonBreakingSpaces(true);
- sb.setCollapse(true);
- sb.setURL(url.toString());
- String s1="rrrrrr" +"\n";
- String s = sb.getStrings();
-
- // créer un fichier qui va contenir le text
-
- File monfic = new File ("unfic"+i+".txt" );
-
-
- try {
- BufferedWriter sortie = new BufferedWriter(new FileWriter("mots.txt", true));
- sortie.write("fichier \n" );
- sortie.write("unfic"+i+".txt"+"\n" );
- } catch (IOException ex) {
- Logger.getLogger(HtmlParser.class.getName()).log(Level.SEVERE, null, ex);
- }
- try {
- FileWriter infic = new FileWriter(monfic);
-
- infic.write(s);
- } catch (IOException ex) {
- Logger.getLogger(HtmlParser.class.getName()).log(Level.SEVERE, null, ex);
- }
-
-
- i++;
-
-
-
- parser.reset();
- NodeList list = parser.parse (new NodeClassFilter (LinkTag.class));
- // l'URL est noté comme visité
- URLVisité.put(new URL(base(url)), titre);
- /*if (reduit)*/ System.out.println(df.format(URLVisité.size()) + " url : " + url.toString() + " - titre : " + format(titre) + "- contenu :\n" + s);
- //else System.out.print("." );
- // saisir le nouveau lien à visiter
- for (int y = 0; y < list.size(); y++) {
- LinkTag tag = (LinkTag) list.elementAt(y);
- if (tag.getAttributeEx("href" ) == null || tag.getAttributeEx("href" ).getValue().equals("#" )) continue; // ignore "#" href
- String href = tag.extractLink();
- try {
- URL urlFound = new URL(href);
- // tous les url des pages externes au site
- if (!urlFound.getHost().equalsIgnoreCase(url.getHost()))
- {
- System.out.println("---------------" );
- System.out.println(urlFound.getHost());
- System.out.println(url.getHost());
- System.out.println("---------------" );
- System.out.println("******---------------*******" );
- System.out.println(URLp.contains(urlFound));
- System.out.println("******---------------******" );
- // Si la page a été déja crée Alors modifier le compteur nombre de liens entrants
- if (URLp.contains(urlFound))
- {
- // parcourir la liste pour recupérer la page
- for (Enumeration e = liste_page.elements() ; e.hasMoreElements() ;)
- {
- page1 pp = (page1) e.nextElement();
- if (pp.get_url().equalsIgnoreCase(urlFound.toString()))
- {
- System.out.println("************ Modification ********" );
- System.out.println(pp.get_url());
- // modifier la page et la remplacer dans la liste
- liste_page.remove(pp);
- pp.set_n_liens(pp.get_nbl()+ 1);
- liste_page.add(pp);
- System.out.println(pp.get_nbl());
- }
- }
- }
- // in créer la page
- else
- {
- page1 p2=new page1();
- p2.initialiser(urlFound.toString(),urlFound.getHost().toString(),1);
- URLp.add(urlFound);
- liste_page.add(p2);
- //liste_page_f.add(p2);
- }
- }
- if (URLVisité.get(new URL(base(urlFound))) == null)
- {
- URLaVisité.add(urlFound);
- }
- } catch (MalformedURLException e) {
- if (reduit && URLInvalide) System.err.println("invalid url : " + href + " " + format(list.elementAt(y).toHtml()));
- }
- }
- } catch (ParserException e) {
- System.err.println(e.getLocalizedMessage());
- } catch (MalformedURLException e) {}
- }
- public HashMap get_hmp(){
- return URLVisité;
- }
- public void affiche()
- {
- System.out.println("***************** les pages **********" );
- for (Enumeration e = liste_page.elements() ; e.hasMoreElements() ;)
- { page1 pp = (page1) e.nextElement();
- System.out.println(pp.get_url());
- System.out.println(pp.get_nbl());
- }
- System.out.println("***************** les pages **********" );
- }
- public static void main(String[] args) {
- // TODO code application logic here
- HtmlParser doc=new HtmlParser("http://www.siteduzero.com/" );
- doc.run();
-
-
- }
- }
|
il n'ya aucun signal d'erreur, mais dés que j'essaye d'executer voila ce qi'il m'affiche:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - not a statement
at htmlparser.HtmlParser.<init>(HtmlParser.java:83)
at htmlparser.HtmlParser.main(HtmlParser.java:265)
SVP,quelqu'un d'entre vous aurait-il la solution? j'en ai vraiment bezoin!
merci |