Extraction de données web
Bonjour tout le monde,
j'ai essayé d'extraire le code source d'une page web en java.
En effet, ma fonction prend en argument le lien (http//....) de la page puis crée un fichier texte en sortie contenant le code source.
Le programme marche très bien sauf pour google.
lorsque j'insère un lien vers une page des résultats de google le fichier en sortie ne contient plus le vrai code de cette page.
Pire encore, Firefox ne permet pas de visualiser le code source d'une telle page à moins d'utiliser l'utilitaire "FireBug".
Pour comprendre ce que je voulais dire par le vrai code source d'une page de résultats google, comparer le code obtenu par Firefox (affichage --> source) et celui obtenu en utilisant FireBug ou encore google chrome ( options pour développeurs --> afficher source).
Une page des résltats de google est la page qui s'affiche lors d'une recherche, par exemple si je recherche "développez" dan google le lien de la page des résultats est :
"http://www.google.fr/#hl=fr&q=developpez&aq=f&aqi=g10&aql=&oq= gs_rfai=&fp=fc9246973793d25a".
Mon code Java est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
public class test {
public static void getIpFrom(String adresse) {
try {
// creation d'un objet URL
URL url = new URL(adresse);
// on etablie une connection a cette url
URLConnection uc = url.openConnection();
// on y cree un flux de lecture
InputStream in = uc.getInputStream();
FileOutputStream fos = new FileOutputStream(new File("source.txt"));
int n =0;
while((n = in.read()) >= 0)
{
//On écrit dans notre deuxième fichier
//avec l'objet adéquat
fos.write(n);
}
//On ferme nos flux de données
in.close();
fos.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.print(getIpFrom("lien web"));
}
} |