테이블에서 요소 추출 문제
Dec 02 2020
안녕하세요, 제 문제를 해결하는 방법에 대한 조언이 필요합니다. 그래서 문제는 주어진 테이블에서 정보를 스크랩하고 그 스팅을 단일 요소로 목록에 추가하고 싶습니다.
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)
답변
baduker Dec 02 2020 at 23:14
pandas
이것은 당신이 다루는 테이블 형식 데이터이기 때문에 사용 하는 것은 어떻습니까?
예를 들면 :
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")
산출:
