Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como pegar um título específico de notícia

Eu gostaria de saber como eu faço pra selecionar, qual notícia da lista de itens a assistente vai falar.

O código que o professor passou é esse:

    for item in noticias.findAll('item')[:2]:
        mensagem = item.title.text
        cria_audio(mensagem)

Esse código faz a assistente dizer as duas primeiras notícias da lista de itens, eu gostaria de saber como selecionar só a notícia 7 por exemplo.

2 respostas
solução!

Oiii Murilo, como você está? Espero que esteja bem ^-^

O código abaixo irá cumprir o você espera, posteriormente explico as alterações:

def ultimas_noticias():
    site = get('https://news.google.com/rss?hl=pt-BR&gl=BR&ceid=BR:pt-419')
    noticias = BeautifulSoup(site.text, 'html.parser')
    manchetes = []
    for item in noticias.findAll('item')[:7]:
        manchetes.append(item)


    mensagem = manchetes[3].title.text
    cria_audio(mensagem)

Criamos uma lista cujo nome é manchetes para que ela armazene as 7 primeiras notícias, isso é feito através do método append. De posse de todos os títulos, agora iremos selecionar apenas a notícia que queremos e isso é feito através da linha:

mensagem = manchetes[3].title.text

No caso acima, estamos selecionando a quarta notícia da lista que contém todas as manchetes. Observe que utilizamos o índice 3 e isso porque por padrão uma lista em Python sempre começa do índice 0. Sendo assim:

  • A primeira notícia terá o índice 0
  • A segunda o índice 1
  • A terceira o índice 2
  • A quarta o índice 3 e assim por diante...

Qualquer dúvida estou por aqui, tá bom?

Abraços e bons estudos!

Muito obrigado Nádia