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 :

récupérer information d'un site sur un word


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 93
    Points : 56
    Points
    56
    Par défaut récupérer information d'un site sur un word
    Bonjour,

    je débute en python, je suis plus autonome sur VBA et R.

    Tous les jours je copie colle des actualités sur un word à la suite avec la date du jour. J'aimerai automatiser car ça n'apporte aucune valeur ajoutée.

    Du coup à travers le webscrapping j'aimerai automatiser.

    J'ai commencé à écrire un bout de code mais je n'arrive pas à filtrer la liste pour en extraire les élements (date, source, lien article). Selon l'heure et source, j'aimerai copier le contenu de l'article (donc ouvrir le lien s'il faut pour copier le contenu et le coller à la suite des autres dans le fichier word).

    Si jamais quelqu'un sait comment faire, je suis preneur, je pense ça pourrai intéresser beaucoup de gens.

    je vous remercie

    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
     
     
    import requests
    from bs4 import BeautifulSoup
    import pandas as pd
     
     
    url = "https://www.boursorama.com/bourse/actualites/marches/"
     
    reponse=requests.get(url)
    soup=BeautifulSoup(reponse.text,"html.parser")
     
    liste=soup.find_all(attrs={"class":"c-list-news u-relative"})
    dt=soup.find_all(attrs={"class":"c-list-news__date"})
     
    #content=soup.find_all(attrs={"class":"c-list-news__content"})
    #source=soup.find_all(attrs={"class":"c-source c-source--inline"})

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 125
    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 125
    Points : 4 495
    Points
    4 495
    Par défaut
    bonjour

    je préfère lire l'html ligne par ligne, puis dans chaque ligne extraire la colonne

    Ce qui donne en gros:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #soup=BeautifulSoup(reponse.text,"html.parser")
    for ligne in soup.select('div.c-block__body li.c-list-news__line'):
        # on recherche des élements dans la balise "LI" trouvée
        date_ = ligne.select_one("span").get_text().strip()   # éventuelement si + complexe, ajouter une classe à la balise span
        link = ligne.select_one("p a")   # éventuelement si + complexe ajouter une classe à la balise "A" : "p a.c-link"
        source = ligne.select_one("strong").contents[2]    # particulier: ici on saute les 2 préfixes
        print(date_, link.get_text(),  link["href"], f"[{source}]")
    Et puisque tu utilises les class comme sélecteur, autant utiliser .select() à la place de .find()

    Citation Envoyé par zertupo Voir le message
    je suis plus autonome sur VBA et R.
    justement, avec rvest on ne fait pas généralement une recherche globale dans tout le document et rvest utilise les mêmes sélecteurs css que bs. Il n'y a pas de raison de perdre nos bonnes habitudes si on change de langage.
    $moi= ( !== ) ? : ;

Discussions similaires

  1. [PowerShell] Comment retranscrire les informations d'un pc sur un site web en intranet ?
    Par allybrbs dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 28/01/2019, 16h05
  2. Réponses: 6
    Dernier message: 09/08/2017, 14h20
  3. Réponses: 4
    Dernier message: 18/06/2004, 16h58
  4. Un site sur DirectX
    Par Lemage dans le forum DirectX
    Réponses: 23
    Dernier message: 17/09/2003, 15h33

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