Oi, Olemar! Como está?
Observando mais de perto o site em que você está realizando o Web Scraping, notei que nem todas as notícias possuem exatamente as classes col-md-12
, col-12
e col-5
. Por esse motivo, não estamos conseguindo extrair por completo todas as informações disponibilizadas pelo portal.
Uma dica é buscar por outra classe que esteja presente em um número mais significativo de notícias. De acordo com os seus códigos, parece que você está tentando coletar os títulos das matérias, as quais estão dentro de uma tag <a>
que contém a classe text-dark
— logo, podemos usá-la neste caso!
Abaixo trago um exemplo de código:
import requests
from bs4 import BeautifulSoup
pagina = requests.get('https://www.reporteminero.cl/noticias/noticias')
soup = BeautifulSoup(pagina.text, 'html.parser')
titulo_noticia_lista_chamada = soup.find_all(class_='text-dark')
Observe que, além de utilizar a classe text-dark
, trabalhamos com o método find_all
(que retorna uma lista com todos os elementos HTML identificados).
Com relação a sua outra dúvida: podemos utilizar recursos específicos da biblioteca BeautifulSoup, como o método get_text()
, para descartar trechos indesejados:
for nome_noticias in titulo_noticia_lista_chamada:
print(nome_noticias.get_text())
No código acima, percorremos a lista titulo_noticia_lista_chamada
e extraímos apenas o conteúdo textual dos links — conteúdo esse que diz respeito aos títulos das notícias.
Olemar, vale ressaltar que como é um assunto externo aos cursos da Alura e que não tenho acesso ao cenário completo do projeto, outros testes terão de ser feitos a fim de obter o resultado esperado, mas espero que esta resposta seja um bom ponto de partida para a resolução do seu problema!
Além disso, para te ajudar neste processo, recomendo a leitura do seguinte material:
Um abraço, Olemar!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!