Как сказал @Pythonista , потому что ничего в супе не было найдено .Я пытаюсь найти то, что вам нужно по классам в браузере, затем я обнаружил, что class="subtituloGrafico subtituloGraficoValor"
принадлежит <a>
.Итак, я понимаю, что вы можете получить.
Примечание: soup.find("h3",{"class":"tituloGrafico"})
используется для сужения вашего поиска
from bs4 import BeautifulSoup
import urllib.request as url
import re
site = "https://economia.uol.com.br/cotacoes/"
def func(site=site):
try:
url2 = site
con = url.urlopen(url2, None, 7)
if con.status == 200:
HTML = con.read()
soup = BeautifulSoup(HTML, 'lxml')
sub = soup.find("h3",{"class":"tituloGrafico"})
title = sub.findChild("a").text
dolar = sub.find('a', attrs={'class': "subtituloGrafico subtituloGraficoValor"}).text
print(title,dolar)
#dolar = re.search(r'Cotacao do Dolar:(.*?)',text)
return dolar
except Exception as e:
raise e
if str(e) == 'HTTP Error 404: NOT FOUND':
return 'Error'
return str(e)
func()