comment puis-je extraire avec une belle soupe une valeur de span class imbriquée?

voix
-2

Je me bats à essayer de comprendre ce qui est l'élément que je dois dire Belle soupe à la ferraille la valeur « montant » de l'étiquette, qui dans cet exemple de code est « 1,56 ».

Je suis coller ci-dessous un extrait de code de la page Web que je veux gratter:

<td class=line-content>
      <span class=html-tag>
       &lt;div
       <span class=html-attribute-name>
        class
       </span>
       ='
       <span class=html-attribute-value>
        the-price
       </span>
       '
       <span class=html-attribute-name>
        style
       </span>
       ='
       <span class=html-attribute-value>
        margin-top:20px;
       </span>
       '&gt;
      </span>
     </td>
    </tr>
    <tr>
     <td class=line-number value=447>
     </td>
     <td class=line-content>
      <span class=html-tag>
       &lt;span
       <span class=html-attribute-name>
        class
       </span>
       ='
       <span class=html-attribute-value>
        currency
       </span>
       '&gt;
      </span>
      <span class=html-tag>
       &lt;/span&gt;
      </span>
      <span class=html-tag>
       &lt;span
       <span class=html-attribute-name>
        class
       </span>
       ='
       <span class=html-attribute-value>
        amount
       </span>
       '&gt;
      </span>
      1,56
      <span class=html-tag>
       &lt;/span&gt;
      </span>
     </td>
    </tr>

vous me éclairer gentiment? Je suis vraiment reconnaissant pour toute aide.

Créé 03/12/2019 à 00:01
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Vous pouvez cibler le montant par exemple comme celui - ci ( dataest votre chaîne HTML):

from bs4 import BeautifulSoup
soup = BeautifulSoup(data, 'html.parser')

span_with_amount = soup.find(lambda tag: tag.name == 'span' and tag.get_text(strip=True) == 'amount')
value = span_with_amount.parent.find_next_sibling(text=True)
print(value.strip())

Prints:

1,56

Tout d' abord , nous trouverons <span>avec le texte « montant » et nous trouverons le texte qui est à côté du parent de ce <span>.

Créé 03/12/2019 à 00:53
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more