0x8100
Fleet Admiral
- Registriert
- Okt. 2015
- Beiträge
- 10.307
so, dann jetzt hier mit vollem namen:
da kommt dann sowas raus:
den unterschied findest du in
Python:
import requests
from lxml.html.soupparser import fromstring
base_url = "https://www.raceherens.ch"
class Cow(object):
def __init__(self, link, max_depth=3):
r = requests.get(f'{base_url}/{link}')
self._max_depth = max_depth
self._root = fromstring(r.text)
self._mutter = self._root.xpath("//div[@class='row']/div/strong[text()='Mutter']/../../div/a")
self._vater = self._root.xpath("//div[@class='row']/div/strong[text()='Vater']/../../div/a")
def _get_parent(self, parent):
if self._max_depth:
try:
return Cow(parent[0].attrib['href'], self._max_depth - 1)
except Exception as e:
print("error getting parent:", e)
@property
def name(self):
name1 = self._root.xpath("//div[@class='detail-title']/h1")[0].text.strip()
name2 = self._root.xpath("//div[@class='uptitle']")[0].text.strip()
return f"{name1} - {name2}"
@property
def mutter(self):
return self._get_parent(self._mutter)
@property
def vater(self):
return self._get_parent(self._vater)
def print_cow(cow, comment="", i=0):
print(i * " ", cow.name, comment)
if cow.mutter and cow.vater:
print_cow(cow.mutter, "(mutter)", i+2)
print_cow(cow.vater, "(vater)", i+2)
print_cow(
Cow("/de/liste-des-vaches/120161212639-321433", max_depth=3)
)
da kommt dann sowas raus:
Code:
TINETTE - TVD 120161212639
TAMINA - TVD 120119253271 (mutter)
PARADE - TVD 120061238685 (mutter)
PALOMA - TVD 410058007357 (mutter)
RAMBO - TVD 120031196618 (vater)
$BREONA - TVD 120055309759 (vater)
CREOLA - TVD 120035560897 (mutter)
BIDUL - TVD 120055309674 (vater)
NAPOLEON - TVD 120132847709 (vater)
NUAGE - TVD 120118244379 (mutter)
NUBIE - TVD 120099535374 (mutter)
PLUMO - TVD 120099238558 (vater)
NINO - TVD 120104514172 (vater)
NEGUS - TVD 410059030699 (mutter)
MILORD - TVD 120099585454 (vater)
den unterschied findest du in
def name(self)
. der name wird aus den zwei teilen zusammen gesetzt, die hier zu finden sind: