• BeautifulSoup

    BeautifulSoup (BS4) est une bibliothèque (package) pour parser du HTML/XML. BS4 est écrit en Python.

    BS4 utilise par défaut le parser lxml mais vous pouvez en spécifier un autre (par exemple html5lib) D'ailleurs, si vous ne précisez pas votre parser vous avez ce message lors du lancement d'un script BS4.

    No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.

    Pour ma part, j'utilise lxml.

    Puisque BS4 ne parse pas les documents, que fait-il ?

    La réponse est sur le site :

    Beautiful Soup provides a few simple methods and Pythonic idioms for navigating, searching, and modifying a parse tree: a toolkit for dissecting a document and extracting what you need. It doesn't take much code to write an application.

    BS4 permet de naviguer au sein des éléments de l'arbre créé par le parser, d'effectuer des recherches ou des modifications sur ces éléments.

    BS4 actuellement en version 4.4.1 est disponible sur Python 2.6+ et Python 3. J'utilise Python 2.6. J'expliquerai dans un futur article comment l'installer.

    La documentation de BS4 disponible ici permet de comprendre facilement ce que fait BS4 :

    Nous aurons l'occasion d'y revenir en détail. 

    Un bref exemple pour commencer. Ce script permet d'extraire tous les liens de la première page du site marchand de bougies parfumées www.scandles.fr 

    import requests
    from bs4 import BeautifulSoup
    u = "http://www.scandles.fr"
    html = requests.get(u)
    data = html.content
    bsObj = BeautifulSoup(data)
    links=bsObj.findAll(« a »)

    Sans entrer dans les détails :  un GET permet d'obtenir la home page. Les données sont transformées en un objet BeautifulSoup (bsObj)

    La méthode findAll (searching the tree) permet de trouver tous les descendants de bsObj qui répondent au filtre ("a")

     

     

     


  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :