begin process at 2010 02 09 20:35:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > WEBSOURCEASPIRO - ASPIRATEUR DE CODE SOURCE DE PAGE INTERNET

WEBSOURCEASPIRO - ASPIRATEUR DE CODE SOURCE DE PAGE INTERNET


 Information sur la source

Note :
3 / 10 - par 1 personne
3,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Classé sous :aspirateur, source, page, internet, site Niveau :Débutant Date de création :08/03/2003 Date de mise à jour :08/03/2003 20:37:37 Vu / téléchargé :8 807 / 449

Auteur : Mikonyx

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

C'est un petit programme simple. On rentre une URL, on appuie sur le bouton et ca charge la page dans une sorte de navigateur (sauf que les liens ne fonctionnent pas, seulement les boutons je crois mais ça n'actualise pas le code source...ce n'était pas le but, c'est juste une visualisation) et ça récupère le code source...voilà voilà, tout bête!

Source

  • import java.awt.*;
  • import java.awt.event.*;
  • import java.net.*;
  • import javax.swing.*;
  • import java.io.*;
  • /**
  • * Titre : WebSourceAspiro
  • * Auteur : Prieur Johann
  • * @version 1.0
  • */
  • class WebSourceAspiro extends JFrame implements ActionListener{
  • JEditorPane page = new JEditorPane(); // On initialise tout le bordel...
  • JToolBar bar = new JToolBar();
  • JTextField url = new JTextField();
  • JEditorPane source = new JEditorPane();
  • JTabbedPane onglet = new JTabbedPane(JTabbedPane.BOTTOM);
  • JLabel url_label = new JLabel("Aller à : ");
  • JButton go = new JButton("Go!");
  • public WebSourceAspiro()
  • {
  • setSize(400, 600); // Là c'est surtout la mise en page...
  • setTitle("WebSourceAspiro");
  • setResizable(true);
  • setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  • go.addActionListener(this);
  • bar.add(url_label);
  • bar.add(url);
  • bar.add(go);
  • page.setEditable(false);
  • page.setFont(new java.awt.Font("Dialog", 0, 15));
  • JScrollPane scroll_page = new JScrollPane(page, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  • JScrollPane scroll_source = new JScrollPane(source, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  • onglet.addTab("Aperçu page", scroll_page);
  • onglet.addTab("Code source", scroll_source);
  • getContentPane().setLayout(new BorderLayout());
  • getContentPane().add("North", bar);
  • getContentPane().add("Center", onglet);
  • }
  • void getData(URL url) { // La fonction pour récupérer le code source de la page...
  • URLConnection conn = null;
  • InputStreamReader in;
  • BufferedReader data;
  • String line;
  • StringBuffer buf = new StringBuffer();
  • try {
  • conn = url.openConnection();
  • conn.connect();
  • in = new InputStreamReader(conn.getInputStream());
  • data = new BufferedReader(in);
  • while ((line = data.readLine()) != null)
  • buf.append(line + "\n");
  • source.setText(buf.toString());
  • } catch (IOException e) {}
  • }
  • public void actionPerformed(ActionEvent evt){ //La fonction pour gérer les évenements...
  • Object src = evt.getSource();
  • if(src == go)
  • try
  • {
  • page.setPage(url.getText());
  • URL http = new URL(url.getText());
  • getData(http);
  • setTitle("WebSourceAspiro - "+ url.getText());
  • }
  • catch(Exception e){}
  • }
  • public static void main(String args[]) // Le main...
  • {
  • WebSourceAspiro index = new WebSourceAspiro();
  • index.setVisible(true);
  • }
  • }
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;
import java.io.*;

/**
 * Titre : 	WebSourceAspiro
 * Auteur : Prieur Johann
 * @version 1.0
 */
  
class WebSourceAspiro extends JFrame implements ActionListener{
	
    JEditorPane page = new JEditorPane(); // On initialise tout le bordel...
  	JToolBar bar = new JToolBar();
  	JTextField url = new JTextField();
  	JEditorPane source = new JEditorPane();
  	JTabbedPane onglet = new JTabbedPane(JTabbedPane.BOTTOM);
  	JLabel url_label = new JLabel("Aller à : ");
  	JButton go = new JButton("Go!");
  	
	public WebSourceAspiro()
	{
		setSize(400, 600); // Là c'est surtout la mise en page...
		setTitle("WebSourceAspiro");
    	setResizable(true);
    	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
    	go.addActionListener(this);
    	bar.add(url_label);
    	bar.add(url);
    	bar.add(go);	
    	page.setEditable(false);
    	page.setFont(new java.awt.Font("Dialog", 0, 15));
		JScrollPane scroll_page = new JScrollPane(page, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		JScrollPane scroll_source = new JScrollPane(source, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		onglet.addTab("Aperçu page", scroll_page);
		onglet.addTab("Code source", scroll_source);
    	getContentPane().setLayout(new BorderLayout());	
    	getContentPane().add("North", bar);	
		getContentPane().add("Center", onglet);							
	}
	
	void getData(URL url) { // La fonction pour récupérer le code source de la page...
        URLConnection conn = null;
        InputStreamReader in;
        BufferedReader data;
        String line;
        StringBuffer buf = new StringBuffer();
        try {
            conn = url.openConnection();
            conn.connect();
            in = new InputStreamReader(conn.getInputStream());
            data = new BufferedReader(in);
            while ((line = data.readLine()) != null)
                buf.append(line + "\n");
            source.setText(buf.toString());
        } catch (IOException e) {}
    }
    
	public void actionPerformed(ActionEvent evt){ //La fonction pour gérer les évenements...
		Object src = evt.getSource();
		if(src == go)
		try
	    {
	    page.setPage(url.getText());
	    URL http = new URL(url.getText());
	    getData(http);
	    setTitle("WebSourceAspiro - "+ url.getText());
	    }
	    catch(Exception e){}
	}
	
	public static void main(String args[]) // Le main...
    	{
		WebSourceAspiro index = new WebSourceAspiro();
		index.setVisible(true);
	}		
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

OÙ EN SUIS JE? NUMÉROTATION DES LIGNES D'UN JTEXTAREA!
EVÈNEMENT D'INTERACTION DE BARRE DE PROGRESSION
Source avec une capture UTILISATION D'UN JFILECHOOSER
Source avec Zip OUVRIR UNE NOUVELLE FENÊTRE.

 Sources de la même categorie

Source avec Zip ANALYSEUR DE PROXY IRC ET HTTP AVEC UNE INTERFACE GRAPHIQUE par sisisousou
Source avec Zip Source avec une capture "PROGRAMMEUR", EST UN PROGRAMME QUI PERMET DE TAPER QUELQUE ... par edouard333
Source avec Zip Source avec une capture "NARRATEUR", PROGRAMME QUI "LIT" SE QU'ON ÉCRIT... par edouard333
Source avec Zip Source avec une capture RENAME-MOAR par cotepierrot
Source avec Zip Source avec une capture DWIKI (DESKTOPWIKI) par xsimo

 Sources en rapport avec celle ci

Source avec Zip CONNEXION SERVEUR VIA PROXY EN JAVA par moumou95
Source avec Zip SERVEUR TCP/IP SOUS JAVA par MrEske
TELECHARGER UN FICHIER A PARTIR D'UNE URL par jaoued zahraoui
BLOGREADER par psyphi
Source avec une capture TÉLÉCHARGEMENT D'IMAGES (POCHETTES CD, DVD, LIVRES...) SUR I... par dufour137

Commentaires et avis

Commentaire de tropbonpourtoi le 08/03/2004 21:28:27

Je te laisse ca a completer ces plus  academique et mieux car si on n'a pas l'ambition de decompose pas en objets alors on fait du VB et du Delphi ou un autre job...
J ai laisse un ou deux bug histoire que les pro s amusent



/*************************************************************************
* Projet Analyseur de Site
* Nom : de projet Sitejaja.java
* Auteur : Runemberg Valery
* Date : 01 fevrier 2003
*

*************************************************************************/

/*************************************************************************
* Bibliothèque
*************************************************************************/
import java.util.*;
import java.net.*;
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.tree.*;
/*************************************************************************
* Class : Page
* Auteur : Runemberg Valery
* Date : 01 fevrier 2003
*
* Constructeur :

*************************************************************************
* public Page(String sAdresse,String sAdresseParent,String sContenu,
* ArrayList ArrayLiensFils,ArrayList ArrayListImages)
*
* public Page(String sAdresse,String sContenu,ArrayList
ArrayLiensFils,
* ArrayList ArrayListImages)

*************************************************************************
* Methodes

*************************************************************************
* public void setAdresse(String sAdresse)
* public String getAdresseParent()
* public void setAdresseParent(String sAdresseParent)
* public String getAdresse()
* public void setContenu(String sContenu)
* public String getContenu()
* public int getTaillePage()
* public int getNombreImagePage()
* public ArrayList getLiensImages()
* public ArrayList getLiensFils()
* public void setLiensFil(ArrayList arrayURLLiens)
* public void addLiensFil(String Lien)
* public void addImages(String sImages)

*************************************************************************
* Proprietes

*************************************************************************
* private ArrayList LiensFils;
* private ArrayList LiensImages;
* private String AdresseParent
* private String Adresse;
* private String Contenu;
*

*************************************************************************/
class Page {
private String AdresseParent;
private String Adresse;
private String Contenu;
private Vector LiensFils ;
    private Vector LiensImages;

public Page(String sAdresse,String sAdresseParent,String
sContenu,Vector VectLiensFils,Vector VectLiensImages)
{
Adresse = sAdresse;
AdresseParent = sAdresseParent;
Contenu = sContenu;
LiensFils = VectLiensFils;
LiensImages = VectLiensFils;
LiensFils.trimToSize();
LiensImages.trimToSize();
}
public Page(String sAdresse,String sContenu,Vector
ArrayLiensFils,Vector ArrayListImages)
{
Adresse = sAdresse;
Contenu = sContenu;
LiensFils = ArrayLiensFils;
LiensImages = ArrayListImages;
LiensFils.trimToSize();
LiensImages.trimToSize();
}
public void setAdresse(String sAdresse)
{
Adresse = sAdresse;
}
public String getAdresseParent()
{
return(AdresseParent);
}
public void setAdresseParent(String sAdresseParent)
{
AdresseParent = sAdresseParent;
}
public String getAdresse()
{
return(Adresse);
}
public void setContenu(String sContenu)
{
Contenu= sContenu;
}

public String getContenu()
{
return(Contenu);
}

public int getTaillePage()
{
return(Contenu.length());

}


public int getNombreImagesPage()
{
return(LiensImages.size());

}
public int getNombreLiensPage()
{
return(LiensFils.size());

}
public Vector getLiensImages(){
return LiensImages;
    }
    
    public Vector getLiensFils() {
return LiensFils;
    }
    public void setLiensFil(Vector VectURLLiens) {
LiensFils = VectURLLiens;
    }
    public void addLiensFil(String Lien) {
LiensFils.addElement(Lien);
    }

    public void addImages(String sImages){
LiensImages.addElement(sImages);
    }
    
}

/************************************************************************
* Class : Page
* Auteur : Runemberg Valery
* Date : 01 fevrier 2003
*
* Constructeur : Le constructeur par defaut
*
*************************************************************************
* Methodes
*************************************************************************
* private URLConnection connectURL(String strURL)
* private String getContenuPage(String input)
* private int intTrouverDebut(int debutrelatif,String strContenu)
* private int filtreURLLiensDejaTrouver(ArrayList list,String strLien)
* private void afficherMauvaisLien()
* private ArrayList afficheContenuPage()
* private ArrayList afficheAdressePage()
* private ArrayList afficheAdresseLiensImagePage()
* private void rechercheLiens(String inputURL,String strContenu)
* private String trouverRepertoire(String retval)
* private String traitementLienAndImage(String path, String
sLienRelatif)
* private ArrayList trouverImage(ArrayList list,String sContenu,String
path)
* private Page ajoutePage(String sAdresse,String sContenu,ArrayList
ArrayLiensFils,ArrayList ArrayListImages)
* public static void main(String[] args)
*************************************************************************
* Proprietes

*************************************************************************
* public ArrayList indexLiens
* public ArrayList BadLiens
* public String Nomsite
*
* private URL inputURL;
* private URLConnection conn;
* private Vector Pages
*************************************************************************/
public class Site extends InterfaceGraphique {


public ArrayList indexLiens = new ArrayList();
public ArrayList BadLiens = new ArrayList();

public String Nomsite = "";

private URL inputURL;
    private URLConnection conn;

private Vector Pages= new Vector();

public void actionPerformed(ActionEvent evt){ //La fonction pour gérer
les évenements...
        Object src = evt.getSource();
        
        if(src == go)
        {
        
     System.out.println("Recherche.....");
String contenu = getContenuPage(url.getText());
rechercheLiens(url.getText(),contenu);
System.out.println("Affichage lien");
// resultat = site.contenuSite();
afficheResultat();
}

}
    public URLConnection connectURL(String strURL){
try{
    inputURL = new URL(strURL);
    conn = inputURL.openConnection();
    //on reccupere le nom du site ce qui va nous permettre
    //ensuite les liens externes
if (Nomsite == "" ){
     Nomsite = strURL;
     Nomsite
=Nomsite.substring(10,Nomsite.lastIndexOf("."));
    
    }
    indexLiens.add(strURL);    
}catch(MalformedURLException e) {
    BadLiens.add(strURL);
    System.out.println("Erreur: Saisir une URL valide" +
strURL);
    
}catch(IOException ioe) {
BadLiens.add(strURL);
    System.out.println("URL est correcte, mais elle n'est
pas joignable" + strURL);
}

return conn;
    }


/*lecture du contenu de la page dans une chaine  et extraction
*des liaisons de cette chaine*/

public String getContenuPage(String input) {

URLConnection url = connectURL(input);
StringBuffer sbuff = new StringBuffer();
String contenu;

try {
    BufferedReader urlReader = new BufferedReader(new
InputStreamReader(url.getInputStream()));
    String line = urlReader.readLine();

while (line != null){
    sbuff.append(line);
    line = urlReader.readLine();
}
}catch(IOException e) {
BadLiens.add(input);
System.out.println("Erreur de lecture: " + e);
};

contenu = sbuff.toString();
return contenu;
    }


private int intTrouverDebut(int debutrelatif,String strContenu) {
   int debutTaghttp;
   int debutTagFrame;
   int debutFramehref;
   int retval;
   String sTaghttp  = "http://";
   // Les FRAME peuvent ecrire ecrite de differentes maniere
   // on teste alors la presence du mot clef frame puis on recupere
   // le debut a partir du mot clef SRC
   String sTagFrame = "frame ";
   String sTagFrameSRC = "src=";
   String sTagFramehref ="href=";
   // on traite les liens normaux
   retval = -1;
  
   if ((debutTaghttp = strContenu.indexOf(sTaghttp,
debutrelatif))!=-1)
   {
   retval = debutTaghttp;
   };
  
   if ((debutTagFrame = strContenu.indexOf(sTagFrame, debutrelatif))
!=-1)
   {
   retval = strContenu.indexOf(sTagFrameSRC, debutTagFrame);
   }
   //cas des frames surtout ou les pages fils peuvent commence par
   //debut <a href=
   if ((debutFramehref = strContenu.indexOf(sTagFramehref,
debutrelatif)) !=-1)
   {
   retval = debutFramehref;
   }

   return retval;
   }  
  
  
private int filtreURLLiensDejaTrouver(ArrayList list,String strLien){
try{

   int retval = -1;

if (strLien=="")
return(-1);

if (list.isEmpty())
{
return(-1);
}
  
    Iterator iterateur = list.iterator();

while (iterateur.hasNext()) {
        String element = (String)iterateur.next();
        if (element.equals(strLien)){
         return(0);
        }
}
return(-1);
    }
    catch(Exception e)
          {
          System.out.println("Une exception s'est produite dans
filtreURLLiensDejaTrouver");
          return(-1);
          }
}

public void afficherMauvaisLien(){
try{


    Iterator iterateur = BadLiens.iterator();

while (iterateur.hasNext()) {
        String element = (String)iterateur.next();
        }
}

    catch(Exception e)
          {
          System.out.println("afficherLien");
    
          }
}
    public ArrayList afficheContenuPage() {
    ArrayList list = new ArrayList();
   Page oPage;
   for(int i = 0; i < Pages.size(); i++)
{
oPage = (Page)Pages.elementAt(i);
list.add(oPage.getContenu());
}
    return(list);
    }
    
public ArrayList afficheAdressePage() {
    ArrayList list = new ArrayList();
   Page oPage;
   for(int i = 0; i < Pages.size(); i++)
{
oPage = (Page)Pages.elementAt(i);
list.add(oPage.getAdresse());
System.out.println("Affichage lien " +oPage.getAdresse());
}
System.out.println("Nom Site" + Nomsite);
    return(list);
    }
    
    public Vector contenuSite() {
    Vector vecteurPages = new Vector();
   Page oPage;
   for(int i = 0; i < Pages.size(); i++)
{
oPage = (Page)Pages.elementAt(i);
vecteurPages.addElement(oPage);
}
    return(vecteurPages);
    }
    
    public ArrayList afficheAdresseLiensImagePage() {
    ArrayList list = new ArrayList();
   Page oPage;
   for(int i = 0; i < Pages.size(); i++)
{
oPage = (Page)Pages.elementAt(i);
list.add(oPage.getAdresse());
System.out.println("Affichage lien " +oPage.getLiensImages());
}
System.out.println("Nom Site" + Nomsite);
    return(list);
    }
    
    public void afficheResultat(){
        
String strResultat = "RESULTATS"+ "\n";
        analyse.append(strResultat);
        try{
        
analyse.append("Nombre de pages traitées " + Pages.size()+"\n");
   for(int i = 0; i < Pages.size(); i++)
{
strResultat = strResultat;

Page oPage = (Page)Pages.elementAt(i);
analyse.append("****************************************"+"\n");
analyse.append(oPage.getAdresse()+"\n");;
analyse.append("Taille de la Page"+"\n");
analyse.append("" +oPage.getTaillePage()+"\n");

analyse.append("Nombre de lien"+"\n");
analyse.append("" + oPage.getNombreLiensPage()+"\n");

analyse.append("Nombre d'images"+"\n");
analyse.append("" + oPage.getNombreImagesPage()+"\n");
analyse.append("\n");
afficheResultatLiens(oPage);
analyse.append("\n");
afficheResultatImage(oPage);
analyse.append("****************************************"+"\n");
}





analyse.append("Liens non traités"+"\n");
for(int j = 0; j < BadLiens.size(); j++)
{
analyse.append((String)BadLiens.get(j)+"\n");
}

}



     catch(Exception e)
          {
        
          }
}

public void afficheResultatImage(Page imagePage){
        
Vector listImages = imagePage.getLiensImages();

listImages.trimToSize();
try{
if (!listImages.isEmpty()){
analyse.append("Nom des lien(s) image(s)"+"\n");
for(int i = 0; i < listImages.size(); i++)
{
analyse.append((String)listImages.elementAt(i)+"\n");

}
listImages.clear();
}
}

    catch(Exception e)
          {
        
          }
}

public void afficheResultatLiens(Page filsPage){
        
Vector list = filsPage.getLiensFils();

list.trimToSize();
try{
if (!list.isEmpty()){
analyse.append("Nom des lien(s) fils(s)"+"\n");
for(int i = 0; i < list.size(); i++)
{
analyse.append((String)list.elementAt(i)+"\n");

}
list.clear();
}
}

    catch(Exception e)
          {
        
          }
}
    public ArrayList afficheAdresseLiensFilsPage() {
    
    ArrayList list = new ArrayList();
   Page oPage;
   for(int i = 0; i < Pages.size(); i++)
{
oPage = (Page)Pages.elementAt(i);
list.add(oPage.getLiensFils());
System.out.println("Affichage lien " +oPage.getLiensFils());
}
System.out.println("Nom Site" + Nomsite);
    return(list);
    }
    //Recherche les liens dans la page
    
    public void rechercheLiens(String inputURL,String strContenu) {

int debut = 0;
int fin = -1;
String lien="";
String lienString="";
Vector LiensImages= new Vector();
LiensImages.clear();
Vector LiensFils = new Vector();
LiensFils.clear();
//transformation du contenu en minuscule    
strContenu.toUpperCase();
LiensFils.clear();
LiensImages.clear();
while ((debut =intTrouverDebut(debut,strContenu))!= -1) {
    fin = -1;
    //ici on regarde si il s agit d une frame
    
    if(debut != -1) {
fin = strContenu.indexOf('>', debut);
lienString = strContenu.substring(debut, fin);
//filtre les lien internes, mailto, css etc
if ( (lienString.indexOf("[",debut) == -1)
|| (lienString.indexOf("#",debut) == -1)  
|| (lienString.indexOf(".pdf",debut) == -1)
|| (lienString.indexOf(".css",debut) == -1)){

lien = traitementLienAndImage(inputURL,lienString);
//Filtre les images

if( (lien.endsWith(".gif")) || (lien.endsWith(".jpg")) ||
   (lien.endsWith(".jpeg")) || (lien.endsWith(".png"))){
   System.out.println("coucou 1"+ lien);
    LiensImages.add(lien);
}
else
{
if ((lien.endsWith("htm"))
|| (lien.endsWith("html")))
{
if(( lien.indexOf(Nomsite))!=-1)
{
LiensFils.add(lien);
}
/*Pour Debug*/
//sur societe.com on trouve
/www.societe.com/pages_html/saisiebilan.html ce qui explique
//la mauvaise ecriture du lien bilan
/* if((
lien.indexOf("http://www.societe.com/pages_html//www.societe.com/pages_html/saisiebilan.html"))!=-1)
{
while(true);
}
*/
/* if((
lien.indexOf("http://www.societe.com/pages_html/presentation.html"))!=-1)
{
while(true);
}
*/
}
}
}     
    }
    debut = fin;
}



debut = 0;
while(debut != -1) {
    if((debut = strContenu.indexOf("img",debut)) == -1)
break;
    if((debut = strContenu.indexOf("src=",debut)) == -1)
break;
  
debut = debut + 5;
    fin = strContenu.indexOf('"', debut);
    
    lien = strContenu.substring(debut, fin);
    
    
    if((lien.endsWith(".gif")) || (lien.endsWith(".jpg")) ||
(lien.endsWith(".jpeg")) || (lien.endsWith(".png"))){
   LiensImages.addElement(lien);
   LiensImages.trimToSize();
   System.out.println(lien);

}
    debut = fin;
  
}


ajoutePage(inputURL,strContenu,LiensFils,LiensImages);
      
    if(!LiensFils.isEmpty()){
for(int i = 0; i < LiensFils.size(); i++)
{//filtreURLLiensDejaTrouver permet de ne pas refaire l analyse
// indexLiens est incremente à niveau de la connectURL
if (
filtreURLLiensDejaTrouver(indexLiens,(String)LiensFils.elementAt(i)) ==-1){

rechercheLiens((String)LiensFils.elementAt(i),getContenuPage((String)LiensFils.elementAt(i)));
indexLiens.add((String)LiensFils.elementAt(i));
indexLiens.trimToSize();
}
}
   }
    }
    
    private String trouverRepertoire(String retval)
{
    int indice;
    
    if (retval.endsWith(".htm")|| (retval.endsWith(".html")))
    {
     indice = retval.lastIndexOf('/');
     retval = retval.substring(0,indice);
}
    
    return retval;
}
    /*ICI on traite l'ensemble des lien est on leur donne
     *leur addresse reelle
     */
   private String traitementLienAndImage(String path, String
sLienRelatif){
    try{
    
     String retval="";
    int debut=0;
    // il existe des possibilite de mauvais codage de reference ou les
cotes de fin
    // sont omises
    int fin ;

if( sLienRelatif.indexOf("src=")!=-1 ||
sLienRelatif.indexOf("href=")!=-1) {
//On traite l information en plusieurs etape
System.out.println("1");
if( sLienRelatif.indexOf("src=")!=1)
debut = sLienRelatif.indexOf("src=")+5;

if( sLienRelatif.indexOf("href=")!=1)
debut = sLienRelatif.indexOf("href=")+6;

retval = sLienRelatif.substring(debut,sLienRelatif.length());

StringTokenizer s = new StringTokenizer(retval, ")#'? \t\n\r\"");
retval = s.nextToken();
if (retval.startsWith("http://www"+Nomsite))
{
System.out.println("1 bis");
return retval;
}
// autre cas particulier
// site societe.com http://quelchose.nomesite...
if (retval.startsWith("http://"))
{
if(( retval.indexOf(Nomsite))!=-1)
{
System.out.println("1 bis bis");
retval =  retval;
System.out.println("retval");
return retval;
}
return retval;
}
if (retval.startsWith("http://www"))
{
System.out.println("lien externe");
return "";
}
System.out.println("1");
if (retval.startsWith("http://..")){
retval = trouverRepertoire((String)indexLiens.get(0)) + "/" +  
retval.substring(9,retval.length());
System.out.println("2");
return retval;
}
if (sLienRelatif.startsWith("http://.")){

retval = trouverRepertoire(path) + "/" +
retval.substring(8,retval.length());

System.out.println("3");
return retval;
}
if (retval.startsWith("../")){
retval = trouverRepertoire((String)indexLiens.get(0))  + "/" +  
retval.substring(3,retval.length());
System.out.println("4");
return retval;
}
if (retval.startsWith("./")){
retval = trouverRepertoire(path) + "/" +
retval.substring(2,retval.length());
System.out.println("5");
return retval;
}
if (retval.startsWith("/")){
System.out.println("path" + path);
System.out.println("retval" + retval);
debut = retval.indexOf("/",1);
retval = trouverRepertoire(path) +
retval.substring(debut,retval.length());
System.out.println("retval" + retval);
System.out.println("5 bis");
return retval;
}
if (!retval.startsWith("http://"))
{
System.out.println("6");
retval = trouverRepertoire(path) + "/" +  retval;
System.out.println("retval"+retval);
return retval;
}
//la on traite les 2 deux autres possibilites
//a href="http://adserver.fr.adtech.
//ou dans le cas d un FRAME src="page.html"
if (retval.startsWith("http://")){
if(( sLienRelatif.indexOf(Nomsite))!=-1){
retval = trouverRepertoire((String)indexLiens.get(0)) + "/" +  
retval;
System.out.println("7");
return retval;
}
else
{
retval = retval;
System.out.println("Lien externe");
return retval;
}
}

}
else
{
System.out.println("7");
/*fin = sLienRelatif.indexOf('"', debut);
    //on verifier car dans des cas parculiers
    if (fin==-1)
     fin = sLienRelatif.indexOf(" ", debut);
    if (fin==-1)
     fin = sLienRelatif.indexOf(">", debut);
if (fin==-1)
     fin = retval.indexOf(')', debut);
    
    // cas intraitable
if (fin==-1)
     return "";*/
StringTokenizer s = new StringTokenizer(retval, ")'? \t\n\r\"");
retval = s.nextToken();

    System.out.println("retval" + retval);
    
    //retval = retval.substring(0,fin);

//http://www.medefi.com
if (retval.startsWith("http://www"+Nomsite))
{ System.out.println("retval");
System.out.println("1 bis");
return retval;
}
// site societe.com http://quelchose.nomesite...
if (retval.startsWith("http://"))
{
if(( retval.indexOf(Nomsite))!=-1)
{
System.out.println("1 bis bis");
retval =  retval;
return retval;
}
return retval;
}
if (retval.startsWith("http://www"))
{
System.out.println("lien externe");
return "";
}
if (retval.startsWith("http://.."))
{
System.out.println("8");
retval = trouverRepertoire((String)indexLiens.get(0)) + "/" +
retval.substring(9,retval.length());
return retval;
}
if (retval.startsWith("http://."))
{
System.out.println("9");
retval = trouverRepertoire(path) + "/" +
retval.substring(8,retval.length());
return retval;
}
if (retval.startsWith("http://"))
{
if(( sLienRelatif.indexOf(Nomsite))!=-1)
{
System.out.println("10");
retval =  sLienRelatif;
return retval;
}

}
}
// sinon on verifie que le lien n'est pas externe grace au nom du
site
if((retval.indexOf(Nomsite))==-1)
{
System.out.println("10");
System.out.println("Lien Externe :"+ sLienRelatif);
System.out.println("Nomsite :"+ Nomsite);
return "";
}
//http://www.societe.com
System.out.println("11");
return "";
    }
    catch(Exception e)
          {
          System.out.println("Une exception s'est produite fonction
classe site traitementLienAndImage " + path +" "+ sLienRelatif);
          return("");
          }
}
  
    //a href="../
    /*rechercher) dans le contenu de la page pour trouver les liens sur
les images */
    public Vector trouverImage(String sContenu,String path) {

int fin = -1;
String lien="";
String imageString="";
Vector list= new Vector();
int debut= 0;

debut = sContenu.indexOf("<img");
System.out.println(sContenu);
System.out.println(debut);
while(debut != -1) {

    if((debut = sContenu.indexOf("src=", debut)) == -1)
break;
  
    debut++;

    fin = sContenu.indexOf('"', debut);
    
    lien = sContenu.substring(debut, fin);
    System.out.println(lien);

    lien = traitementLienAndImage(path,imageString);
    
    if((lien.endsWith(".gif")) || (lien.endsWith(".jpg")) ||
(lien.endsWith(".jpeg")) || (lien.endsWith(".png"))){
  
   list.addElement(lien);
   list.trimToSize();
   System.out.println(lien);

}
    debut = fin;
  
}
return(list);
    }

    private void ajoutePage(String sAdresse,String sContenu,Vector
VectorLiensFils,Vector VectorListImages)
    {
Page oPage = new
Page(sAdresse,sContenu,VectorLiensFils,VectorListImages);
Pages.addElement(oPage);
Pages.trimToSize();

}

public static void main(String[] args) {

Site site = new Site();

// InterfaceGraphique monInterface = new InterfaceGraphique();
site.setVisible(true);

String input = "";
/* System.out.println("Entre une url (exemple : http://www.medefi.com )
");

try {
    BufferedReader stdin = new BufferedReader(new InputStreamReader
(System.in));
    
    input = stdin.readLine();
}catch(IOException e) {System.out.println("Erreur de lecture du buffer
d'entree: " + e);}
System.out.println("Recherche.....");
String contenu = site.getContenuPage(input);
site.rechercheLiens(input,contenu);
System.out.println("Affichage lien :");*/
/* site.afficheAdressePage();
site.afficheResultat();*/
}
}    
/************************************************************************
* Class : InterfaceGraphique
* Auteur : Runemberg Valery
* Date : 01 fevrier 2003
*
* Constructeur : InterfaceGraphique
*
*************************************************************************
* Methodes
*************************************************************************
* public void actionPerformed(ActionEvent evt)
*************************************************************************
* Proprietes
*************************************************************************
*public JToolBar bar
*public JTextField url
*public JLabel url_label
*public JButton go
*public JTabbedPane onglet
*public JEditorPane page
*public JTextArea analyse
*public JTextField source
*************************************************************************/


class InterfaceGraphique extends JFrame implements ActionListener{
public JToolBar bar = new JToolBar();
        
        public JTextField url = new
JTextField("http://www.medefi.com");
        
        public JLabel url_label = new JLabel("Nom du Site : ");
        
        public JButton go = new JButton("OK");
        

public JTabbedPane onglet = new JTabbedPane(JTabbedPane.BOTTOM);

public JEditorPane page = new JEditorPane();
        public JTextArea analyse = new JTextArea();
        public JTextField source = new JTextField();
      
        
    public InterfaceGraphique()
    { //dimension
        setSize(800, 600);
        //titre du programme
        setTitle("Oberon : Analyseur de Site web version 1.0");
        // redimensionnement autorise
        setResizable(true);
        /*JFrame a un comportement par défaut associé à une
        tentative de fermeture de la fenêtre.
Contrairement à la classe Frame, qui ne réagissait pas par défaut,
l'action de fermeture sur un JFrame rends par défaut la fenêtre
invisible.
Ce comportement par défaut peut être modifié par
setDefaultCloseOperation().
*/
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        go.addActionListener(this);
        
        bar.add(url_label);
        bar.add(url);
        bar.add(go);    
        
        page.setEditable(false);
        page.setFont(new java.awt.Font("Dialog", 0, 15));
        
        analyse.setEditable(false);
        analyse.setFont(new java.awt.Font("Dialog", 0, 15));
        
        /*JScrollPane scroll_page = new JScrollPane(page,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        JScrollPane scroll_source = new JScrollPane(source,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);*/
        JScrollPane scroll_analyse = new JScrollPane(analyse,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        
        /*onglet.addTab("Aperçu page", scroll_page);
        onglet.addTab("Code source", scroll_source);*/
        onglet.addTab("Analyse",scroll_analyse);
        
        
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add("North", bar);
        getContentPane().add("Center", onglet);  
                              
    }

    public void actionPerformed(ActionEvent evt){ //La fonction pour
gérer les évenements.
        Object src = evt.getSource();
        
        if(src == go)
        {
        
    
}

}

/* Rappel
* private ArrayList LiensFils;
* private ArrayList LiensImages;
* private String AdresseParent
* private String Adresse;
* private String Contenu;*/
}

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

code source [ par didoux95 ] Bonjour à tous.Actuellement, je cherche a récupérer le code source d'une page internet (HTML par exemple).J'ai trouvé sur internet plussieurs code jav Ping site Internet [ par leviz ] Bonjour tout le monde!!J'aurais besoin d'être aiguillé!!Voilà mon problème : je cherche à faire un servlet qui ira tester si mes sites web sont UP en cherche code source d'un site ecommerce en jsp [ par seiya013 ] Bonjour,j'ai &#233;normement de mal &#224; trouver un site fait en jsp&nbsp;en open source, j'ai bien vu le site de tasbin en servlet sur michael jack aspirateur de site [ par abdoulzak ] salut &#224; toutes et &#224; tousJ'aimerais savoir si quelqu'un a entendu parl&#233; d'un apirateur de site en local &#224; partir d'un site dynamiqu login visual web [ par astuces_jeux ] slt j'ai fait ce qu'on m'avais dit et puis j'ai eu un probl&#232;me j'ai mit un grand login et puis page login et Help [ par yvon_bizimana ] Bonjour, je suis entrain de créer un site internet avec java/j2ee et jsp sous eclipse. pour l'instant je ne suis qu'au jsp et j'ai un probleme. Je vou Format d'impression [ par moipam ] Bonjour,en ce moment, je réalise un site web. avec ce site, on doit pouvoir imprimer un fiche au format A4.suivant les explorer, l'impression diffère. Récuperer code source d'une page web [ par diablosephiroth ] Bonjours à tous, je dois créer un programme sauf que la j'ai un blocage :pIl faudrait que en Java, je récupère le code source de cette page:<a href="h Acces page internet [ par ericmaudouit ] Salut a tous. Voila je cherche une classe qui me permette de charger une page web dans une String. Quelqu'un sait de quelle classe il s'agit. Merci recupérer le code source d'une page web avec httpclient [ par fraisa1985 ] Salut,Je suis entrain de développer une application qui nécessite la récupération du code source de cette page.Pour cela je suis entrain d'utiliser la


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales