IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

extrait tableaux avec un seul url


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2022
    Messages : 6
    Par défaut extrait tableaux avec un seul url
    Bonjour!



    Je viens vers vous aujourd'hui car j'essai d'extraire un tableaude plusieurs pages directement depuis le site internet. J'ai déjà trouvé plusieurs codes me permettant de faire cela malheuresment ces codes ne sont pas applicables à mon tableau.
    En effet, toutes les pages du tableau que j'étudie sont référencées sur le même url et je ne peux qu'en extraire la première page... Auriez-vous des conseils à me donner afin que je puisse extraire mes données?



    Pour vous donner une idée de la construction du site avec le même URL, voilà la lien : https://nadeaud.ilm.pf/liste-echantillons



    Merci d'avance pour votre aide!

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 322
    Par défaut
    bonjour
    Citation Envoyé par leagr Voir le message
    toutes les pages du tableau que j'étudie sont référencées sur le même url et je ne peux qu'en extraire la première page...
    Sans ton code, difficile de répondre mais je ne vois aucun problème il te suffit d'incrémenter la page tant que la page retourne des datas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    page = 0
    datas = []  # résultats de toutes les pages
    while True:
      page +=1
      url = f"https://nadeaud.ilm.pf/liste-echantillons?limit=100&page={page}"
      datas_de_la_page = Ma_fonction_snif(url)  # ta fonction existante qui retourne un tableau depuis une seule page
      if not datas_de_la_page:  # suis à la fin car plus rien a extraire
        break
      datas.extend(datas_de_la_page)
    Citation Envoyé par leagr Voir le message
    J'ai déjà trouvé plusieurs codes me permettant de faire cela malheuresment ces codes ne sont pas applicables à mon tableau.
    pas logique On trouve/récupère un code uniquement si on le comprend. Et si on le comprend, alors il est simple de le modifier.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2022
    Messages : 6
    Par défaut
    Justement j'ai voulu construire un code à partir des codes que je trouvais et comprenais sur internet car je suis encore novice... C'est vrai que je n'ai pas pensé à joindre mon code.
    Le fait est que je comprend les boucles proposées par d'autres codes quand l'url est de type https://lien.fr/page1; https://lien.fr/page2;... et que sous cette forme là je me sens capable de coder avec une boucle for. Mais puisque sur mon site il n'y a pas d'indicateur de page dans l'url je ne voyais pas comment m'y prendre.
    voilà où j'en étais sans prendre en compte plusieurs pages :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import requests
    import pandas as pd
    from bs4 import BeautifulSoup
     
    url = "https://nadeaud.ilm.pf/liste-echantillons"
    page = requests.get(url)
    soup = BeautifulSoup(page.text)
     
    data = soup.find_all('table')
    df = pd.read_html(str(data))
     
    df.to_csv(r"echantillons_herbier.csv", header = True)
    Dans le script que vous envoyez je ne comprends pas où le numéro de page intervient. Peut-on le rajouter comme ça dans l'url s'il n'y est pas au départ?
    et à quoi correspond le f dans url=f"....?
    Quand vous parlez de ma fonction, cela signifie que je dois incorporer le code que j'ai écris sous forme d'une fonction applicable en une ligne?
    Enfin je ne comprend pas quand While n'est plus égal à True...

    J'avais aussi une question concernant ce que j'ai déjà écris : dans la ligne soup = BeautifulSoup(page.text), plusieurs code ajoutent 'html.parser' en argument, sauriez vous ce que cela signifie?

  4. #4
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 423
    Par défaut
    Pour nous faciliter la lecture, c'est mieux de mettre le code entre les balises appropriées (bouton #)
    Sinon, pour avoir une page quelconque du tableau, il suffit de la mettre dans l'url comme précisé par papajoker (https://nadeaud.ilm.pf/liste-echantillons?page=6) avec limit=100, cela donne plus de résultat par page.
    le f"..." est un élément de syntaxe python... Donc à ce niveau, le mieux, c'est d'ouvrir le manuel

    https://realpython.com/python-f-strings/

    En tout état de cause, je pense qu'avant d'aller lire des pages avec beautifulsoup et panda, vous avez quelques étapes de compréhension des bases à franchir. Le html_parser est un paramètre à fournir. C'est dans la doc de la fonction (Beautifulsoup propose une documentation assez complète)

Discussions similaires

  1. Création de tableaux croisée dynamique avec une seule macro
    Par malostage dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 30/04/2018, 16h14
  2. Parcourir deux tableaux avec une seule boucle
    Par Merevinh dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2013, 13h50
  3. Comment créer plusieurs tableaux avec un seul ?
    Par keokaz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2012, 10h20
  4. Comment protéger une seule URL avec .htaccess ?
    Par tscoops dans le forum Apache
    Réponses: 2
    Dernier message: 20/05/2010, 17h45
  5. [Tableaux] Variable dans l'url avec EasyPhp 1.8
    Par zoheir_hm dans le forum Langage
    Réponses: 6
    Dernier message: 24/06/2006, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo