TP 4 - Lecture et analyse du code HTML d`une page web

publicité
09/03/09
CNAM de Tours
NFA005 – Algorithmique et Programmation avec Java : Travaux Pratiques
TP 4 - Lecture et analyse du code HTML d’une page web
Exercice
1) Importer le fichier « AnalysePageWeb.java » (contenu visible à la page suivante) dans Eclipse.
Que fait ce programme ?
Evolutions
2) A partir du programme précédent, écrire un programme qui
- demande à l’utilisateur de saisir l’adresse de la page web à « analyser »,
- affiche les liens hypertextes contenus dans la page parcourue.
3) Ecrire un programme qui :
- demande à l’utilisateur de saisir :
- l’adresse de la page web à analyser,
- le « niveau de profondeur » de la recherche,
- affiche les liens hypertextes contenus dans les pages parcourues.
4) Ecrire un programme qui :
- demande à l’utilisateur de saisir :
- l’adresse de la page web à analyser,
- la balise à rechercher,
- affiche le(s) contenu(s) trouvé(s) entre les balises ciblées.
1/2
AnalysePageWeb.java
import java.io.*;
import java.net.*;
class WebPage {
URL URLcourant;
int nboctets;
int nb_href;
public WebPage(String u) {
try {URLcourant = new URL(u);}
catch (MalformedURLException e) {
Terminal.ecrireString("PB URL");
}
nboctets=0;
nb_href=0;
}
public void etude() {
char caractCourant;
String baliseCourante;
try {
InputStream uuu = URLcourant.openStream();
DataInputStream donneesHTML = new DataInputStream(uuu);
while (true) {
caractCourant = (char) donneesHTML.readByte();
nboctets++;
if (caractCourant == '<') {
baliseCourante = analyseBalise(donneesHTML);
if (baliseCourante.startsWith("<A HREF") ||
baliseCourante.startsWith("<a href")) {
Terminal.ecrireStringln(baliseCourante);
nb_href++;
}
}
}
}
catch (EOFException e) {
Terminal.ecrireStringln("TERMINE: Taille = "+nboctets+" NB HREF = "+nb_href);
}
catch (IOException e) {
System.out.println(e);
}
}
public String analyseBalise(DataInputStream is) {
StringBuffer baliseCourante = new StringBuffer("<");
char caractCourant = '<';
try {
while (caractCourant != '>') {
caractCourant = (char) is.readByte();
baliseCourante.append(caractCourant);
nboctets++;
}
}
catch(EOFException e) {
Terminal.ecrireStringln("PB fin page");
}
catch(Exception e) {
System.err.println(e);
}
return baliseCourante.toString();
}
}
public class AnalysePageWeb {
public static void main(String[] args) {
WebPage pg = new WebPage("http://cnam37.free.fr");
pg.etude();
}
}
2/2
Téléchargement