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.

¿Cómo obtener datos específicos de un sitio web utilizando expresiones regulares?

Soy un traductor español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown

Soy nuevo en la web scraping con Python. Estoy tratando de construir un script que solo recupere el texto normal debajo de los que están en negrita del sitio web: https://www.state.gov/cuba-restricted-list/list-of-restricted-entities-and-subentities-associated-with-cuba-effective-january-8-2021/

Es decir, como los textos MINFAR – Ministerio de las Fuerzas Armadas Revolucionarias y MININT – Ministerio del Interior debajo de los Ministerios, de manera similar hasta el final Subentidades adicionales de Habaguanex y almacenarlos como una lista. Intenté recuperarlos con el siguiente código, pero no puedo obtener solo los valores de texto normales.

Aquí está mi código:

import requests

import re

from bs4 import BeautifulSoup


URL = "https://www.state.gov/cuba-restricted-list/list-of-restricted-entities-and-subentities-associated-with-cuba-effective-january-8-2021/"
page = requests.get(URL)

soup = BeautifulSoup(page.text, "lxml")

content = soup.find_all(lambda tag: tag.name == 'div' and tag.get('class') == ['entry-content'])

print(content)

Cualquier idea es bienvenida amigos. No dudes en compartir tus pensamientos. ¡Gracias de antemano!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando raspar el texto del sitio web. Puedes usar el método find_all de la librería BeautifulSoup para obtener el texto desde el sitio web. Puedes usar el método get_text para obtener el texto de los elementos HTML. Aquí tienes un ejemplo:

    import requests
    from bs4 import BeautifulSoup
    
    URL = "https://www.state.gov/cuba-restricted-list/list-of-restricted-entities-and-subentities-associated-with-cuba-effective-january-8-2021/"
    page = requests.get(URL)
    soup = BeautifulSoup(page.text, "lxml")
    
    content = soup.find_all('div', class_='entry-content')
    
    for element in content:
        text = element.get_text()
        print(text)
    

    Esto debería darte el texto del sitio web. Luego puedes usar expresiones regulares o manipulación de cadenas para obtener el texto que necesitas.

Comments are closed.