Websourceaspiro - aspirateur de code source de page internet

Soyez le premier à donner votre avis sur cette source.

Vue 13 240 fois - Téléchargée 652 fois

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 / Exemple :


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); } }

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

Messages postés
2
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
8 mars 2004

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.