Se connecter a un site internet

Fermé
louisard2 Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 6 octobre 2023 - 26 août 2015 à 01:24
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 26 août 2015 à 16:20
Bonjour
Je réalise une petite appli, et j'aimerais qu'elle puisse se connecter a un site ( http://fanfox.net/ ) pour récuperer le dernier chapitre sorti d'un manga.
Si l'un de vous a une piste de recherche, une idée ou par chance une solution ca sera d'une grande aide
Merci ;)
A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 août 2015 à 10:45
Bonjour,

Pour récupérer le contenu d'une page web tu peux faire :

import java.net.URL;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(new URL("http://mangafox.me").openStream());
        while (sc.hasNextLine())
            System.out.println(sc.nextLine());
        sc.close();
    }
}
0
louisard2 Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 6 octobre 2023
26 août 2015 à 15:45
Merci

Maintenant pour récupérer la ligne qui m'intéresse, je compte mettre tout ce qu'il récupère dans un fichier avant de le parcourir pour chercher la chaîne de caractère qui m'intéresse, mais je me disais que c'était assez long, dc du coup je me demandais s'il t'avais une solution plus rapide.

Merci
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 août 2015 à 16:20
"je compte mettre tout ce qu'il récupère dans un fichier avant de le parcourir pour chercher"
Pourquoi ne pas chercher directement la ligne que tu veux quand tu lis la page ?
De plus quitte à stocker, pourquoi le faire dans un fichier plutôt que directement dans un String ou une List ?
Ta page n'est pas très volumineuse (17 Ko), il vaut donc mieux privilégier la RAM, ça évitera de faire des allers-retours sur le disque. Sans parler du code de manipulation des fichiers qui serait plus lourd que nécessaire dans ton cas.

Exemple avec une expression régulière pour extraire les liens des balises <a></a>

import java.net.URL;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

    private static final Pattern HFREF_PATTERN = Pattern.compile("<a[^>]*href=\"([^\"]*)\"[^>]*>([^<]*)</a>");

    public static void main(String[] args) throws Exception {
        StringBuilder sb = new StringBuilder();

        Scanner sc = new Scanner(new URL("http://mangafox.me/").openStream());
        while (sc.hasNextLine())
            sb.append(sc.nextLine().replaceAll("\\s+", " "));
        sc.close();

        Matcher m = HFREF_PATTERN.matcher(sb);
        while (m.find())
            System.out.println(m.group(2) + "\n\t" + m.group(1));
    }
}
0