Recuperer code source d'une page html
Résolu
fouzou11
Messages postés
157
Statut
Membre
-
MCAC -
MCAC -
Bonjour,
je veux savoir comment recuperer une partie de code source d'une page html . par example une partie d'un paragraphe ?
j'ai reussi a recuperé le code source complet mais je veux seulement quelques elements
code
import java.net.*;
import java.io.*;
public class URLConnectionReader {
public static void main(String[] args) throws Exception {
URL oracle = new URL("https://www.lesite.com/");
URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
je veux savoir comment recuperer une partie de code source d'une page html . par example une partie d'un paragraphe ?
j'ai reussi a recuperé le code source complet mais je veux seulement quelques elements
code
import java.net.*;
import java.io.*;
public class URLConnectionReader {
public static void main(String[] args) throws Exception {
URL oracle = new URL("https://www.lesite.com/");
URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
5 réponses
-
Merci Kx de votre reponse ;
pour l'element je vous donne un example :
si je veux recuperé un taux (type numerique ) depuis une site web , ce taux peut se changé n'importe quel moment seulement se taux peux etre affiché dans une balise <p> ou <td> .-
Les balises <p> et <td> sont n'importe où et n'importe quel ordre ? Tu veux récupérer tout ce qui est soit entre des balises <p></p> ou <td>/td> ? S'il y a un format précis, fais un copier-coller d'un exemple, car avec le Scanner on peut traiter des expressions régulières aussi, mais il faut la faire bien.
-
-
-
ok par example dans cette page que nous parlons dedans il y une partie de la source comme ca :
<div id="searchOpt" class="searchOptions">
<span id="fs_optclose"><a href="#" class="floatRight marT5 ftUnderline" onclick="$('searchOpt').style.display='none';return false;">Fermer</a></span>
<input id="fs_opt_kw" class="radio" value="" name="mode" type="radio" checked="checked">
<label for="fs_opt_kw">Recherche par mot-clé</label>
<input id="fs_opt_u" class="radio" value="u" name="mode" type="radio">
<label for="fs_opt_u">Recherche par nom d'utilisateur</label>
<br/><br/><input id="fs_opt_na" value="pending" name="opt" type="checkbox">
<label for="fs_opt_na">Messages sans réponse</label>
<input id="fs_opt_solved" value="solved" name="opt" type="checkbox">
<label for="fs_opt_na">Questions résolues</label>
</div>
si je veu par example recuperé les chaine de caractere apres les mot rechercher dans <label for="fs_opt_u">Recherche par nom d'utilisateur</label> -
Il faudrait bien sûr tester ce que ça donne sur ton site :
public static void lireSite(String url) throws MalformedURLException, IOException { String regex = "\\<label for=\"([^\\\"]*)\"\\>([^\\<]*)\\</label\\>"; Scanner sc = new Scanner(new URL(url).openStream()); while (sc.hasNextLine()) { String line = sc.nextLine(); if (line.matches(regex)) { Scanner sc2 = new Scanner(line); sc2.findInLine(regex); MatchResult result = sc2.match(); System.out.printf("%s\t%s\n",result.group(1),result.group(2)); sc2.close(); } } sc.close(); }
Avec ton exemple ça m'affiche ceci :
fs_opt_kw Recherche par mot-clé fs_opt_u Recherche par nom d'utilisateur fs_opt_na Messages sans réponse fs_opt_na Questions résolues
-
-
Probleme resolu ^^ ;
merci Kx ,
est-ce que vous pouvez faire un tour ici svp https://forums.commentcamarche.net/forum/affich-26516454-soa-web-services#p26516454 -
Clic droit n'importe où sur la page (sauf un lien) puis code source de la page, non ?
édit : t'as fait ta modification en même temps que j'ai envoyé mon message donc pas vu, désolé -
Il faudrait être un peu plus précis sur les "éléments" que tu souhaites récupérer.
Au passage, je te montre comment réécrire ton code plus simplement grâce à Scanner :
public static void lireSite(String url) throws MalformedURLException, IOException { Scanner sc = new Scanner(new URL(url).openStream()); while (sc.hasNextLine()) System.out.println(sc.nextLine()); sc.close(); } -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour KX, j'ai un projet où j'ai besoin de récuperer, dans le meme genre, des informations précise à partir du code source d'une page html. J'ai éssayé votre code, mais je rencontre un problème au suejt de la classe URL.
Merci