Saltar al contenido

Cómo seleccionar etiquetas por valor de atributo con Beautiful Soup

Solución:

Simplemente puede hacer esto:

soup = BeautifulSoup(html)
results = soup.findAll("a", {"data-name" : "result-name"})

Fuente: Cómo encontrar etiquetas con solo ciertos atributos – BeautifulSoup

html = """
<div class="headercolumn">
<h2>
<a class="results" data-name="result-name" href="https://foroayuda.es/xxy> my text</a>
</h2>"""

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
for d in soup.findAll("div",{"class":"headercolumn"}):
    print d.a.get("data-name")
    print d.select("a.results")

result-name
[<a class="results" data-name="result-name" href="http://newbedev.com/xxy&gt; my text&lt;/a&gt;&lt;/h2&gt;"></a>]

seleccionar clases o identificadores

soup.select('a.gamers') # select an `a` tag with the class gamers
soup.select('a#gamer') # select an `a` tag with the id gamer

seleccionar attr único:

soup.select('a[attr="value"]')

seleccionar atributo múltiple:

attr_dict = {
             'attr1': 'val1',
             'attr2': 'val2',
             'attr3': 'val3'
            }

soup.findAll('a', attr_dict)

puedes usar cualquier selector de CSS en soup.select

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *