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 :

importer table html dans liste


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Déssinateur
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Déssinateur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut importer table html dans liste
    bonjour,

    débutant en python, je voudrais récupérer des tables d'une page html, mais je n'y arrive pas.
    j'ai écris quelque chose qui ne fonctionne pas.

    pouvez-vous m'aider a résoudre mon erreur.

    merci de votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #trouver toutes les tables
     
    from bs4 import BeautifulSoup
    import urllib.request
     
    def get_tables(html_doc):
        soup = BeautifulSoup(html_doc)
     
        for row in soup.findAll('table')[1].findAll('tr'):
            tab1 = row.findAll('td')
            print (tab1)
     
    pageweb = ("http://www.geny.com/arrivee-et-rapports-pmu/2014-05-29-pmu-prix-marcel-callier_c618264")
     
    get_tables("pageweb")

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Qu'espérez vous en écrivant get_tables("pageweb")?
    "pageweb" est la page HTML dans laquelle vous demandez à une fonction de beautifulsoup d'y trouver le tag TABLE.
    Évidemment, il va pas l'y trouver.

    La page web, il faut aller la lire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    URL = "http://www.geny.com/arrivee-et-rapports-pmu/2014-05-29-pmu-prix-marcel-callier_c618264"
    page = urllib.request.urlopen(URL).read()
    Maintenant qu'on a récupéré la page, on peut demander à bs4 de chercher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    soup = BeautifulSoup(page)
     
    for row in soup.findAll('table')[1].findAll('tr'):
        tab1 = row.findAll('td')
        print (tab1)
    C'est pas compliqué mais sans avoir appris les bases de la programmation et du langage, pas facile de s'en sortir.

    Si vous voulez débuter en Python, ayez la patience de lire un tuto. et de faire quelques exercices. La programmation HTTP n'est pas trop compliquée mais demande d'avoir acquis un minimum de bases. Si vous devez demander de l'aide dans les forums pour des trucs aussi simples, les idées de programme que vous avez auront de la peine à aboutir. Vous allez vous décourager d'être toujours coincé pour un truc à la c...

    Notez vos idées sur un papier, histoire de ne pas les oublier en attendant d'avoir appris les bases.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Déssinateur
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Déssinateur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut
    Merci de votre réponse.

    excusez moi en sortant une partie du code de mon programme j'avais oublier cette ligne.
    Je précise que je suis le tuto, j'en suis a la moitié environ, en meme temps je regarde la doc de beautifulsoup, c'est compliqué pour moi qui ne comprend pas l'anglais.

    Peut être que j'ai été trop ambitieux d'attaquer a programmer de suite avant la fin du tuto, mais je trouve que c'est moteur et enthousiasmant quand un programme prend forme.

    je remet mon bout de code avec une question suplementaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #trouver toutes les tables
     
    from bs4 import BeautifulSoup
    import urllib.request
     
    def get_tables(html_doc):
        soup = BeautifulSoup(html_doc)
     
        for row in soup.find_all('table')[2].find_all('tr'):
            tds=row.findAll('td')
            print (tds)
     
    pageweb = "http://www.geny.com/arrivee-et-rapports-pmu/2014-05-29-pmu-prix-marcel-callier_c618264"
    pageweb = urllib.request.urlopen(pageweb).read()
     
     
    get_tables("pageweb")
    moi j'ai redéfini la même variable a la ligne 14, vous vous en avais mis 2 différentes, je suppose que c'est mieux mais pour quelle raison?

    merci et excusez le piètre débutant que je suis.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par williams63 Voir le message
    moi j'ai redéfini la même variable a la ligne 14, vous vous en avais mis 2 différentes, je suppose que c'est mieux mais pour quelle raison?
    Imaginez être un explorateur du 17ième siècle débarquant en Afrique ou en Asie.
    Au début les indigènes vous paraîtront tous noirs ou tous jaunes, ce n'est qu'avec le temps que vous apprendrez à les reconnaître, les différentier.
    Une autre analogie pourrait être le nombre de noms que les esquimaux donnent à la neige.
    La programmation est aussi un monde à explorer et du temps pour y trouver ses repères.

    Quand vous écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pageweb = "http://www.geny.com/arrivee-et-rapports-pmu/2014-05-29-pmu-prix-marcel-callier_c618264"
    pageweb = urllib.request.urlopen(pageweb).read()
    une variable étant une variable pourquoi pas: çà fonctionne.

    Pourtant, http://www.geny.com/arrivee-et-rappo...allier_c618264 est une constante, l'adresse HTTP d'une page Web.
    urllib.request.urlopen(pageweb).read() sera le document HTML contenu dans cette page là.

    Donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    URL = "http://www.geny.com/arrivee-et-rapports-pmu/2014-05-29-pmu-prix-marcel-callier_c618264"
    page = urllib.request.urlopen(URL).read()
    Et vous voyez aussi que j'ai pris le soin d'écrire URL en majuscule pour traduire "constante".

    Avec le temps vous allez écrire des programmes plus grands.
    Ce qui se traduira par pleins de noms de variables, de fonctions,.... Un vrai zoo.
    Sans prendre le soin de nommer vos objets en suivant quelques règles, çà va vite devenir le souk.
    Mais pour l'instant, vous en êtes encore à apprendre la différence entre "adresse" et "contenu".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Déssinateur
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Déssinateur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut
    Bon je vois que j'ai encore du boulot pour passer du niveau de mauvais rebutant a débutant

    en tout cas merci et les tutos ont beau être bien fait ils ne replaceront jamais l’expérience des gens.

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 283
    Par défaut
    Citation Envoyé par williams63 Voir le message
    Bon je vois que j'ai encore du boulot pour passer du niveau de mauvais rebutant a débutant
    Tss tss tss, ne jamais se dévaloriser à ce point !
    Débutant, oui, rebutant, non !
    (à lire sur l'air de l'eau ferrugineuse, oui, le vin, non ! pour ceux qui ont des souvenirs)

    Tu débutes, tu rencontres des écueils, parfois par excès d'enthousiasme, mais tu avances !
    Comme disait ma grand-mère : "debout mauvaise troupe, l'avenir est devant !".

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par AdmChiMay Voir le message
    Tss tss tss, ne jamais se dévaloriser à ce point !
    Débutant, oui, rebutant, non !
    (à lire sur l'air de l'eau ferrugineuse, oui, le vin, non ! pour ceux qui ont des souvenirs)

    Tu débutes, tu rencontres des écueils, parfois par excès d'enthousiasme, mais tu avances !
    Comme disait ma grand-mère : "debout mauvaise troupe, l'avenir est devant !".
    C'est amusant ! Mon grand-père disait toujours : "c'est en faisant qu'on devient faiseron".

    @+.

  8. #8
    Membre averti
    Homme Profil pro
    Déssinateur
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Déssinateur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut
    Sans se dévaloriser, j'ai encore pas mal de chose a apprendre, mais ça progresse doucement

  9. #9
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Vous parlez si bien , çà fait plaisir ...

    Nom : Cat_and_Mouse_by_Stressed_Jenny_on_deviant_ART.jpg
Affichages : 246
Taille : 68,2 Ko

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. importer table excel dans mysql
    Par maverick56 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 09/05/2007, 11h07
  2. Table html dans un Div
    Par youcef81 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 27/12/2006, 15h15
  3. [FLASH 8] import d'HTML dans Flash
    Par costa dans le forum Flash
    Réponses: 2
    Dernier message: 29/09/2006, 09h50
  4. PB lecture ou import table DB2 dans ACCESS
    Par Invité dans le forum Access
    Réponses: 2
    Dernier message: 22/06/2006, 14h54
  5. Pb import table dbf dans Access
    Par besly dans le forum Access
    Réponses: 10
    Dernier message: 28/12/2005, 20h51

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