bonjours, cela fait plusieurs jour que je cherche un exemple pour extraire des information du page web sans grand résulta si quelqu'un pouvait me donnée le debut d'une piste.
merci d'avance.
bonjours, cela fait plusieurs jour que je cherche un exemple pour extraire des information du page web sans grand résulta si quelqu'un pouvait me donnée le debut d'une piste.
merci d'avance.
Tu peux commencer à télécharger la page en utilisant URLConnection (n'oublie pas les timeout) exemple :
En ensuite il faut extraire les infos qui t'intéressent par exemple avec des expressions régulières mais tout dépend de la page en question.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 URLConnection cn = new URL(URL_DATA).openConnection(); cn.setConnectTimeout(15000); cn.setReadTimeout(15000); cn.connect(); InputStream stream = cn.getInputStream(); byte buf[] = new byte[16384]; StringBuffer out = new StringBuffer(); int numread; do { // Télécharge numread = stream.read(buf); // Ecrit dans le buffer if (numread > 0) out.append(new String(buf, 0, numread)); // Calcul de l'avancement // On compte 20% au début pour la connexion et 10% pour le traitement final publishProgress((int)((float)out.length() / (float)length * 70.0f) + 20); } while (numread > 0); stream.close(); return out.toString();
j'ai vue sur plusieurs site des référence a xpath, st il possible de l'utiliser sur des page html?
Sa dépend vraiment comment est faite la page, si c'est une page XML oui mais du HTML classique il y a des balises qui ne sont pas refermés par exemple <img> il n'y a pas de </img>, parfois <img /> qui est conforme au XML mais c'est loin d'être systématique. Et encore là c'est pour un fichier HTML valide !
Si c'est toi qui est à l'origine du fichier et que tu à la main sur le format alors tu peux utiliser un peu ce que tu veux mais si tu veux parser une page quelconque oublie ...
sa serai pour une page web quelconque quel serai la meilleur solution existe t'il des librairies?
ps : je n'est pas la main sur la page html
Me semble bizarre ce code:
D'un coté on lit des bytes... de l'autre on enregistre des chars...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 byte buf[] = new byte[16384]; StringBuffer out = new StringBuffer(); int numread; do { // Télécharge numread = stream.read(buf); // Ecrit dans le buffer if (numread > 0) out.append(new String(buf, 0, numread)); // Calcul de l'avancement // On compte 20% au début pour la connexion et 10% pour le traitement final publishProgress((int)((float)out.length() / (float)length * 70.0f) + 20); } while (numread > 0);
Avec comme conversion un "new String(buf,0,numread)" qui utilise donc UTF-16 par défaut, ce qui est loin d'être le défaut pour les pages web (ISO-8859-1).
Il faudrait peut-être lire le charset de la page avant non ?
Partager