Masalah dengan mengekstraksi elemen dari tabel

Dec 02 2020

Halo, saya butuh nasihat bagaimana menangani masalah saya. Jadi masalahnya, saya ingin membuang informasi dari tabel yang diberikan, dan menambahkan sengatan itu ke dalam daftar sebagai elemen tunggal.

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)

Jawaban

baduker Dec 02 2020 at 23:14

Bagaimana kalau menggunakan pandaskarena ini adalah data tabel yang Anda hadapi?

Sebagai contoh:

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")

Keluaran: