Recuperer code source d'une page html

Résolu
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();
}
}

5 réponses

  1. 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> .
    1. Modérateur
      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.
    2. donc voila , je veux recuperé se qui apres TAUX : dans <td> </td>
    3. Modérateur
      Est-ce que tu peux donner un exemple de code HTML qui correspond à ton site, parce que là ce n'est pas super précis, or il faut être super rigoureux avec les regexp.
    4. 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>
    5. Modérateur
      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
  2. 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
    1. 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é
      1. Vitaldik en java . puisque j'ai besoin des valeur recuperés dans un traitement
    2. Modérateur
      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();
      }
      1. 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