How to extract text from a selected Beautifulsoap element?

Asked

Viewed 77 times

2

I’m making a simple Crawler to get some news from the financial market. The code below is working properly, but would like to extract only the headline and then delete the html/CSS codes.

import requests, bs4,os
url = ('https://valor.globo.com/')
res = requests.get(url)
objSoup=bs4.BeautifulSoup(res.text,features="html.parser")
newsValor = objSoup.select('.highlight__subtitle')
newsValor

I couldn’t find much about it.

1 answer

3


Use the method get_text:

import requests, bs4,os

url = ('https://valor.globo.com/')
res = requests.get(url)
objSoup=bs4.BeautifulSoup(res.text,features="html.parser")
newsValor = objSoup.select('.highlight__subtitle')

full_text=[]

for i in range(len(newsValor)):
    full_text.append(newsValor[i].get_text() + "\n\n") #dei um espaço de duas linhas para cada entrada para ver com mais clareza as manchetes

print(''.join(full_text))

Output:

 Na contagem apenas dos votos válidos, Covas tem 57% e Boulos, 43% 

 Pesquisa exclusiva vai ajudar você a diversificar seus investimentos 

 Por seis votos a três, tribunal especial montado na Assembleia Legislativa de Santa Catarina considerou que Carlos Moisés não cometeu crime de responsabilidade ao conceder aumento salarial a procuradores do estado 

 Ex-juiz da Mãos Limpas diz que “encarcerar as pessoas é inútil e piora o problema” 

 Esta Black Friday registrará uma migração natural de parte da demanda das lojas físicas para o on-line 

 População ocupada no comércio foi a única a se manter estável no período 

 Decisão deixa a campanha do republicano com poucas opções para contestar os resultados do pleito na Pensilvânia 

 Nas últimas 24 horas, a Rússia registrou mais um recorde de 27.543 novos casos de covid-19, quase 25% deles na capital 

 Valores, segundo a CNI, variam de R$ 80 a R$ 1 mil por unidade inspecionada em porto 

 Receita total dos embarques do segmento chegou a US$ 577 milhões até outubro 

 Pesquisa mostra que brasileiros são mais otimistas quanto ao uso de ferramentas digitais

Note that newsValor is an object that looks like a list and cannot extract the text directly from it, as can be seen in the methods list of that object (type dir(newsValor)). However, the method get_text is defined for the elements of newsValor (typhoon dir(newsValor[0])). Hence the need for a loop.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.