Olá pessoal,
Estou extraindo os dados de empresas da B3 através do site do fundamentus, consegui chegar na parte onde o dado fica:
tr class="par"><td><a href="detalhes.php?papel=ABCB3">ABCB3</a></td><td>ABC Brasil</td><td>BANCO ABC BRASIL S/A</td></tr>
Como consigo acessar separadamente a td 1, 2 e 3?
Código completo:
import bs4
import urllib.request as urllib_request
import pandas
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
from bs4 import BeautifulSoup
url = 'https://www.fundamentus.com.br/detalhes.php?papel='
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'}
req = Request(url, headers = headers)
response = urlopen(req)
html = response.read().decode('ISO-8859-1')
html = " ".join(html.split()).replace('> <', '><')
soup = BeautifulSoup(html,'html.parser')
try:
print("Success")
except HTTPError as e:
print(e.status, e.reason)
except URLError as e:
print(e.reason)
coleta = soup.findAll(class_="par")
Consegui extrair os dados da TD 1 através de uma função:
coleta = soup.findAll(class_="par")
ticker = []
def coleta_ticker():
i = 0
while i < len(coleta):
coleta_2 = coleta[i].td.a.get_text()
ticker.extend([coleta_2])
i += 1
coleta_ticker()
Ai ficou faltando as td 2 e 3 que são o nome e razão social da empresa.