es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

BeautifulSoup – ¿cómo puedo encontrar un span dentro de un contenedor flex?

Lo intenté todo, pero cada vez devuelve None. Creo que el soup ni siquiera lo contiene todo. Miré un poco por el soup y tampoco lo encontré, lo intenté con algunos antes con el mismo resultado. ¿Alguien sabe cuál es el problema?

import requests
from bs4 import BeautifulSoup as bs


"""<div class="galleryviewbottom-wrapper ">
<div class="galleryviewrating-wrapper">
<div class="galleryviewoffercount">
<a href="pny-geforce-rtx-3090-oc-xlr8-gaming-epic-x-rgb-triple-fan-edition-vcg309024tfxppb-a2366527.html?hloc=de#offerlist" class="galleryviewoffercount-link">
3 Ofertas
</a>
</div>
</div>
<div class="galleryviewoffer-wrapper ">
<div class="galleryviewoffer">
<span itemprop="offers" itemscope="" itemtype="https://schema.org/Offer">
<div class="galleryviewprice">
<span class="galleryviewprice-before">
a partir de
</span>
<a rel="noopener" href="pny-geforce-rtx-3090-oc-xlr8-gaming-epic-x-rgb-triple-fan-edition-vcg309024tfxppb-a2366527.html?hloc=de#offerlist" class="galleryviewprice-link" onclick="
window.gh.track('Categorylist' , 'Click' , 'Precio');
">
<span class="price">€ 2655,08</span>
</a>
<span class="galleryviewavailability available" aria-label="
en stock en el minorista
" data-tooltip-pos="up-right" tabindex="0"></span>
</div>
</span>
</div>
</div>
</div>"""


URL = "https://geizhals.de/?cat=gra16512&xf=9816_03+05+16+-+RTX+3090"
r = requests.get(URL)
src = r.content
soup = bs(src, 'html.parser')

s = soup.find('span', attrs={'class': 'price'})
print(s)
Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema es que no estás buscando el elemento correcto en soup. El elemento que estás buscando es un span con la clase price, pero estás buscando un div con la clase galleryview__price. Intenta cambiar la línea s = soup.find('div', attrs={'class': 'galleryview__price'}) a s = soup.find('span', attrs={'class': 'price'}) y ve si eso ayuda.

Comments are closed.