Recuperer code source d'une page html

Résolu
fouzou11 Messages postés 157 Statut Membre -  
 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();
}
}

5 réponses

  1. fouzou11 Messages postés 157 Statut Membre 4
     
    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> .
    2
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      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.
      0
    2. fouzou11 Messages postés 157 Statut Membre 4
       
      donc voila , je veux recuperé se qui apres TAUX : dans <td> </td>
      0
    3. KX Messages postés 19031 Statut Modérateur 3 020
       
      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.
      0
    4. fouzou11 Messages postés 157 Statut Membre 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>
      0
    5. KX Messages postés 19031 Statut Modérateur 3 020
       
      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
      0
  2. fouzou11 Messages postés 157 Statut Membre 4
     
    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
  3. Vitaldix Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   6
     
    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é
    0
    1. fouzou11 Messages postés 157 Statut Membre 4
       
      Vitaldik en java . puisque j'ai besoin des valeur recuperés dans un traitement
      0
  4. KX Messages postés 19031 Statut Modérateur 3 020
     
    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();
    }
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. MCAC
     
    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
    0