Cómo obtener las noticias diarias usando Python

En este artículo vamos a ver cómo obtener noticias diarias usando Python. Aquí usaremos Beautiful Soup y el módulo de solicitud para raspar los datos.

Módulos necesarios

  • bs4 : Beautiful Soup (bs4) es una biblioteca de Python para extraer datos de archivos HTML y XML. Este módulo no viene integrado con Python. Para instalar este tipo, escriba el siguiente comando en la terminal.
pip install bs4
  • requests : Request le permite enviar requests HTTP/1.1 de manera extremadamente fácil. Este módulo tampoco viene integrado con Python. Para instalar este tipo, escriba el siguiente comando en la terminal.
pip install requests

Implementación paso a paso:

Paso 1: en primer lugar, asegúrese de importar estas bibliotecas.

Python3

import requests
from bs4 import BeautifulSoup

Paso 2: luego, para obtener el contenido HTML de https://www.bbc.com/news, agregue estas 2 líneas de código:

Python3

url='https://www.bbc.com/news'
response = requests.get(url)

Paso 3: obtener una etiqueta HTML específica

Para encontrar las etiquetas HTML en las que se encuentran los titulares de las noticias, diríjase a https://www.bbc.com/news e inspeccione un titular de noticias haciendo clic con el botón derecho en él y haciendo clic en «inspeccionar»:

Verá que todos los titulares están contenidos dentro de las etiquetas “<h3>”. Por lo tanto, para borrar todas las etiquetas “<h3>” dentro de esta página web, agregue estas líneas de código a su secuencia de comandos:

Primero, definimos «sopa» como el contenido HTML de la página web de noticias de la BBC. A continuación, definimos «títulos» como una array de todas las etiquetas «<h3>» que se encuentran dentro de la página web. Finalmente, el script recorre la array de «títulos» y muestra todo su contenido uno por uno, eliminando cada elemento de su HTML externo y mostrando solo su contenido de texto usando el método «text.strip()».

Python3

soup = BeautifulSoup(response.text, 'html.parser')
headlines = soup.find('body').find_all('h3')
for x in headlines:
    print(x.text.strip())

A continuación se muestra la implementación:

Python3

import requests
from bs4 import BeautifulSoup
  
url = 'https://www.bbc.com/news'
response = requests.get(url)
  
soup = BeautifulSoup(response.text, 'html.parser')
headlines = soup.find('body').find_all('h3')
for x in headlines:
    print(x.text.strip())

Producción:

Limpiando los datos

Es posible que haya notado que su salida contiene titulares de noticias duplicados y contenidos de texto que no son titulares de noticias.

Cree una lista de todos los elementos de texto de los que desea deshacerse:

no deseado = [‘BBC World News TV’, ‘BBC World Service Radio’, ‘News daily newsletter’, ‘Mobile app’, ‘Get in touch’]

Luego imprima elementos de texto solo si no están en esta lista poniendo:

print(x.text.strip())

A continuación se muestra la implementación:

Python3

import requests
from bs4 import BeautifulSoup
  
url = 'https://www.bbc.com/news'
response = requests.get(url)
  
soup = BeautifulSoup(response.text, 'html.parser')
headlines = soup.find('body').find_all('h3')
unwanted = ['BBC World News TV', 'BBC World Service Radio',
            'News daily newsletter', 'Mobile app', 'Get in touch']
  
for x in list(dict.fromkeys(headlines)):
    if x.text.strip() not in unwanted:
        print(x.text.strip())

Producción:

Publicación traducida automáticamente

Artículo escrito por levrmedia9 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 *