正在记录网页抓取数据



大家好,虽然我以文本格式获得了我想要的数据,但当我试图将其记录为列表或转换为数据帧时,它根本不起作用。我得到的是一个只有一项的巨大列表,这是我得到的数据的最后一行,即数字"9.054.333,18"。有人能帮我吗?我需要将所有这些数据组织在一个列表或数据帧中。

from bs4 import BeautifulSoup
from urllib.request import urlopen
import re
html = urlopen('http://www.b3.com.br/pt_br/market-data-e-indices/servicos-de-dados/market-data/consultas/mercado-a-vista/termo/posicoes-em-aberto/posicoes-em-aberto-8AA8D0CC77D179750177DF167F150965.htm?data=16/04/2021&f=0#conteudo-principal')
soup = BeautifulSoup(html.read(), 'html.parser')
texto = soup.find_all('td')
for t in texto:
print(t.text)
lista=[]
for i in soup.find_all('td'):
lista.append(t.text)
print(lista)

您的迭代器是错误的——您在最后一个循环中使用了i,同时追加了t.text

你可以使用列表理解:

# ...
soup = BeautifulSoup(html.read(), 'html.parser')
lista = [t.text for t in soup.find_all('td')]

最新更新