from bs4 import BeautifulSoup
# 1) jeśli masz body jako string:
# html = "
...."
# 2) albo wczytaj z pliku lokalnego:
with open("guitar2.html", "r", encoding="utf-8") as f:
html = f.read()
soup = BeautifulSoup(html, "html.parser")
# model — najpierw input[name="s_nr_kat"]
model = None
inp = soup.find("input", {"name": "s_nr_kat"})
if inp and inp.has_attr("value"):
model = inp["value"].strip()
# jeśli trzeba, fallback: znajdź Model i pobierz input w następnym
if not model:
b = next((b for b in soup.find_all("b") if b.get_text(strip=True).lower() == "model"), None)
if b:
td = b.find_parent("td")
if td:
next_td = td.find_next_sibling("td")
if next_td:
inp2 = next_td.find("input")
if inp2 and inp2.has_attr("value"):
model = inp2["value"].strip()
# nr zamówienia — span.czarnobiale (może zawierać )
order = None
span = soup.find("span", class_="czarnobiale")
if span:
order = span.get_text(strip=True)
# dodatkowe oczyszczanie (usuwa ewentualne spacje)
if order:
order = order.replace("\n", " ").strip()
print("Model:", model)
print("Nr zam.:", order)
|