Beispiel #1
0
def parse_season(season):
    content = urlopen(season.url).read()
    ctx = libxml2.htmlParseDoc(content, "UTF-8")
    gamedays = ctx.xpathEval("//div[@class='data']/table[@class='standard_tabelle']/tr")
    day = None
    while gamedays:
        g = gamedays.pop(0)
        cls = g.get_children().prop("class")
        if cls == "ueberschrift":
            if "Spieltag" in g.content:
                number = int(g.content.strip().split(".", 1)[0])
                day = GameDay.from_data(season, number)
        if day is not None:
            cols = g.xpathEval("td")
            if len(cols) == 7:
                team_home = cols[1].get_children()
                team_guest = cols[3].get_children()
                team_home = Team(
                    {"caption": team_home.prop("title"), "url": team_home.prop("href")}
                ).url
                team_guest = Team(
                    {"caption": team_guest.prop("title"), "url": team_guest.prop("href")}
                ).url
                result = Result({
                    "url": cols[4].xpathEval("a")[0].prop("href"),
                    "result": parse_result(cols[4].content.strip())
                })
                Match({
                    "url": result.url,
                    "gameday": day.url,
                    "home": team_home,
                    "guest": team_guest,
                    "result": result.result
                })
    return season