Problema con la extracción de elementos de la mesa.

Dec 02 2020

Hola, necesito un consejo sobre cómo solucionar mi problema. Entonces, la cosa es que quiero eliminar información de la tabla dada y agregar esas picaduras a la lista como elementos singulares.

from bs4 import BeautifulSoup
from urllib.request import Request, urlopen
    
site = "http://www.voltwo.webd.pl/1-indexy/index-5-opracowania/01-maturalne-KINEMATYKA.html"
hdr = {'User-Agent': 'Mozilla/5.0'}
req = Request(site, headers=hdr)
page = urlopen(req)
soup = BeautifulSoup(page, features="html5lib")
table = soup.findAll('td')

data = [i.find('tr') for i in table if i.find('tr') and 'text']
print(data)

Respuestas

baduker Dec 02 2020 at 23:14

¿Qué tal usarlo, pandasya que se trata de datos tabulares con los que está tratando?

Por ejemplo:

import pandas as pd
import requests
from bs4 import BeautifulSoup

url = "http://www.voltwo.webd.pl/1-indexy/index-5-opracowania/01-maturalne-KINEMATYKA.html"
soup = BeautifulSoup(requests.get(url).content, "html.parser").find("table")
df = pd.read_html(str(soup), skiprows=[0, 1, 2, 3, 4, 5])
df = pd.concat(df).drop([7, 8], axis="columns")
columns = ["Lp", "Rok", "Forma", "Poziom", "Typ zadania", "Strona", "Zadanie"]
df.to_csv("table.csv", index=False, header=columns, encoding="utf-8")

Salida: