Partage
  • Partager sur Facebook
  • Partager sur Twitter

Parcourir une balise html vide

mix python-html

Sujet résolu
    30 décembre 2023 à 17:54:18

    Bonjour ou plutôt bonsoir actuellement, 

    Je rencontre un souci intéressant. J'essaye de faire un programme en Python qui parcourt les balises html d'un site (ici vinted). Problème, la balise que j'essaye de parcourir est vide. Je m'explique, en html on peux parfois tombé sur des balises de type "<div class="exemple">" ici le souci que je rencontre est que la balise que je parcours est vide c'est à dire qu'elle est comme ça "<div class="">". Je vous met le code que j'ai réalisé en Python pour le moment. 

    from bs4 import BeautifulSoup
    import httpx
    import asyncio
    from httpx import Timeout
    
    async def fetch_url(url):
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
        }
    
        async with httpx.AsyncClient (timeout=Timeout(3.0)) as client:
            response = await client.get(url, headers=headers)
            return await parse_html(response.text)
    
    async def parse_html(data):
        soup = BeautifulSoup(data, 'html.parser')
        all = soup.find('div', {'class': 'row u-position-relative content-wrapper-flex'})
        vide = all.find('div', {'class': ''})
        print(vide)
    
    url = "https://www.vinted.fr/catalog?search_text=&catalog[]=2376&price_from=6&currency=EUR&price_to=15&brand_ids[]=64910&order=newest_first"
    asyncio.run(fetch_url(url))

     Vous pouvez directement tester ce programme ou aller dans l'url (pour les balises) mis dedans ce sont des éléments réels. 
    Je vous remercie d'avance et en vous souhaitant de bonne fête

    • Partager sur Facebook
    • Partager sur Twitter
      30 décembre 2023 à 18:09:59

      Salut,

      Arf, ça peut être beaucoup de problèmes liés aux diverses dynamiques du site (JavaScript).

      Le contenu peut être chargé dynamiquement et donc les données intéressantes, absentes du contenu initial

      Perso, j'utiliserai plutôt un module python déjà existant comme PyVinted, vous aurez peut-être plus de réussite ou un framework tel que Selenium avec la complexité du temps d'apprentissage à ne pas négliger.

      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        30 décembre 2023 à 18:16:40

        Ouais bah enfaite mon programme est considéré comme du scrapping et Vinted ne l'autorise pas donc j'allais revenir sur ce poste pour le modifier mais c'est pas la peine puisque je vais effectivement passé par leur api ce qui est plus "éthique" et plus propre, bien que je n'avais aucune mauvaise intention. En tout cas merci pour le module je te souhaite une bonne soirée.
        • Partager sur Facebook
        • Partager sur Twitter

        Parcourir une balise html vide

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown