Beautifulsoup – siguiente hermano

La propiedad nextSibling se usa para devolver el siguiente Node del Node especificado como objeto Node o nulo si el Node especificado es el último de la lista. Es una propiedad de sólo lectura. En este artículo, encontraremos los siguientes hermanos de una etiqueta dada que satisfagan los criterios dados y aparezcan después de esta etiqueta en el documento.

Ejemplos:

HTML_DOC:

 “””

             <html>

              <cabeza>

                  <title> Encuentra a los siguientes hermanos </title>

              </cabeza>

              <cuerpo>

                   <p class = “idiomas”>1957: FORTRAN</p>

                   <p class = “idiomas”>1972: C</p>

                   <p class = “idiomas”>1983: C++</p>

                   <p class = “idiomas”>1991: Python</p>

                   <p class = “idiomas”>1993: Ruby</p>

                   <p class = “idiomas”>1995: Java</p>

                   <p class = “idiomas”>1995: PHP</p>

                   <p class = “idiomas”>1995: JavaScript</p>

              </cuerpo>

            </html>

“””

elemento : <p class = “idiomas”>1957: FORTRAN</p>

Producción : 

                    <p class = “idiomas”>1972: C</p>

                   <p class = “idiomas”>1983: C++</p>

                   <p class = “idiomas”>1991: Python</p>

                   <p class = “idiomas”>1993: Ruby</p>

                   <p class = “idiomas”>1995: Java</p>

                   <p class = “idiomas”>1995: PHP</p>

                   <p class = “idiomas”>1995: JavaScript</p>

Módulos Requeridos:

  • BeautifulSoup (bs4): es una biblioteca de Python para extraer datos de archivos HTML y XML. Este módulo no viene integrado con Python. Ejecute el siguiente comando en la terminal para instalar esta biblioteca:
pip install bs4
or
pip install beautifulsoup4

Encontrar a los próximos hermanos:

La función find_next_siblings() se usa para encontrar todos los hermanos siguientes de una etiqueta/elemento.

Devuelve todos los hermanos siguientes que coinciden.

Encuentra el próximo hermano:

La función find_next_sibling() se usa para encontrar el hermano siguiente de una etiqueta/elemento.

Solo devuelve la primera coincidencia junto a la etiqueta/elemento.

Ejemplo 1: encontrar todos los hermanos siguientes de una etiqueta/elemento

Python3

# Import Module
from bs4 import BeautifulSoup
  
# HTML Document
HTML_DOC = """
              <html>
               <head>
                   <title> Find Next Siblings </title>
               </head>
               <body>
                    <p class = "languages">1957: FORTRAN</p>
  
                    <p class = "languages">1972: C</p>
  
                    <p class = "languages">1983: C++</p>
  
                    <p class = "languages">1991: Python</p>
  
                    <p class = "languages">1993: Ruby</p>
  
                    <p class = "languages">1995: Java</p>
  
                    <p class = "languages">1995: PHP</p>
  
                    <p class = "languages">1995: JavaScript</p>
  
               </body>
             </html>
            """
  
# Function to find all the next siblings
def findNextSiblings(html):
  
    # parse html content
    soup = BeautifulSoup(html, "html.parser")
  
    element = soup.p
  
    # Extracting all the next siblings of an element
    nextSiblings = element.find_next_siblings("p")
  
    # Printing all the next siblings
    for nextSibling in nextSiblings:
        print(nextSibling)
  
  
# Function Call
findNextSiblings(HTML_DOC)

Producción:

Ejemplo 2: encontrar el siguiente hermano de una etiqueta/elemento

Python3

# Import Module
from bs4 import BeautifulSoup
  
# HTML Document
HTML_DOC = """
              <html>
               <head>
                   <title> Find Next Sibling </title>
               </head>
               <body>
                    <p class = "languages">1957: FORTRAN</p>
  
                    <p class = "languages">1972: C</p>
  
                    <p class = "languages">1983: C++</p>
  
                    <p class = "languages">1991: Python</p>
  
                    <p class = "languages">1993: Ruby</p>
  
                    <p class = "languages">1995: Java</p>
  
                    <p class = "languages">1995: PHP</p>
  
                    <p class = "languages">1995: JavaScript</p>
  
               </body>
             </html>
            """
  
# Function to find the next sibling
def findNextSibling(html):
  
    # parse html content
    soup = BeautifulSoup(html, "html.parser")
  
    element = soup.p
  
    # Extracting the next sibling of an element
    nextSibling = element.find_next_sibling("p")
  
    # Printing next sibling of an element
    print(nextSibling)
  
  
# Function Call
findNextSibling(HTML_DOC)

Producción:

Ejemplo 3: encontrar el hermano siguiente de la etiqueta principal (en el caso de una estructura anidada)

Python3

# Import Module
from bs4 import BeautifulSoup
  
# HTML Document
HTML_DOC = """
              <html>
               <head>
                   <title> Find Next Sibling Of Parent </title>
               </head>
               <body>
                    <div class = "languages">
                          
<p>1957: FORTRAN</p>
  
                    </div>
                    <div class = "languages">1995: PHP</div>
                    <div class = "languages">1995: JavaScript</div>
               </body>
             </html>
            """
  
# Function to find the next sibling
def findNextSibling(html):
  
    # parse html content
    soup = BeautifulSoup(html, "html.parser")
  
    element = soup.p
  
    # Parent tag of the element
    parent_tag = element.parent
  
    # Extracting the next sibling of parent
    nextSibling = parent_tag.find_next_sibling("div")
  
    # Printing next sibling of parent
    print(nextSibling)
  
  
# Function Call
findNextSibling(HTML_DOC)

Producción:

Ejemplo 4: encontrar un número específico de hermanos próximos.

Por ejemplo, encontrar solo los siguientes 3 hermanos de un elemento.
Esto se puede hacer usando el argumento de límite

Python3

# Import Module
from bs4 import BeautifulSoup
  
# HTML Document
HTML_DOC = """
              <html>
               <head>
                   <title> Find Next 3 Siblings </title>
               </head>
               <body>
                    <p class = "languages">1957: FORTRAN</p>
  
                    <p class = "languages">1972: C</p>
  
                    <p class = "languages">1983: C++</p>
  
                    <p class = "languages">1991: Python</p>
  
                    <p class = "languages">1993: Ruby</p>
  
                    <p class = "languages">1995: Java</p>
  
                    <p class = "languages">1995: PHP</p>
  
                    <p class = "languages">1995: JavaScript</p>
  
               </body>
             </html>
            """
  
# Function to find 3 next siblings
def findNextSiblings(html):
  
    # parse html content
    soup = BeautifulSoup(html, "html.parser")
  
    element = soup.p
  
    # Extracting the next 3 siblings of an element
    nextSiblings = element.find_next_siblings("p", limit=3)
  
    # Printing the next 3 siblings
    for nextSibling in nextSiblings:
        print(nextSibling)
  
  
# Function Call
findNextSiblings(HTML_DOC)

Producción:

Publicación traducida automáticamente

Artículo escrito por yuvraj_chandra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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