Example #1
0
def get_champC(driver, params):
    ret = []
    champ = {}
    teams = []
    data = []
    try:
        print("::: CHAMPIONSHIP CONSTRUCTOR")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath(
                "//div[@id='tabs-3']/div/ul[@class='puntajes']"))
        points = 0
        for it in range(0, len(items)):
            tds = items[it].find_elements_by_xpath("./li")
            strTeam = tds[2].find_element_by_xpath("./span").get_attribute(
                "innerHTML")
            idTeam = params["catRCtrl"].upper() + "-C-" + \
                strTeam.lower().strip().replace(" ", "_", 9)
            linkTeam = tds[1].find_element_by_xpath("./img").get_attribute(
                "src")
            team = {
                "idTeam": idTeam,
                "strTeam": strTeam,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idTeam,
                "numSeason": parse_int(params["year"]),
                "strGender": "C",
                "strTeamLogo": linkTeam,
                "strTeamBadge": linkTeam,
                "strTeamFanart4": linkTeam
            }
            teams.append(team)
            line = {
                "idPlayer":
                idTeam,
                "position":
                parse_int(tds[0].get_attribute("innerHTML").replace("°", "")),
                "totalPoints":
                parse_float(tds[3].get_attribute("innerHTML")),
            }
            points += line["totalPoints"]
            data.append(line)
        champ = {
            "idChamp":
            params["catRCtrl"].upper() + "-" + params["year"] + "-C",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "C"
        }
        ret.append(teams)
        ret.append(champ)
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Championship", [teams, champ])
        return "::: ERROR CHAMP CONSTRUCTOR :::"
Example #2
0
def get_champD(driver, pilots, params):
    ret = []
    champ = {}
    data = []
    try:
        print("::: CHAMPIONSHIP DRIVERS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath(
                "//div[@id='tabs-1']/div/ul[@class='puntajes']"))
        points = 0
        for it in range(0, len(items)):
            tds = items[it].find_elements_by_xpath("./li")
            nameDriver = tds[2].find_element_by_xpath("./span").text
            idDriver = ""
            for p in range(0, len(pilots)):
                if (pilots[p]["strPlayer"].upper() == nameDriver.upper()):
                    idDriver = pilots[p]["idRCtrl"]
                    break
            if (idDriver == ""):
                idDriver = params["catRCtrl"].upper() + "-" + nameDriver.lower(
                ).strip().replace(" ", "_", 9)
                linkTeam = tds[1].find_element_by_xpath("./img").get_attribute(
                    "src")
                pilot = {
                    "idPlayer": idDriver,
                    "idCategory": params["catRCtrl"],
                    "idRCtrl": idDriver,
                    "strPlayer": nameDriver.title(),
                    "numSeason": parse_int(params["year"]),
                    "strFanart4": linkTeam
                }
                pilots.append(pilot)
            line = {
                "idPlayer": idDriver,
                "position": parse_int(tds[0].text.replace("°", "")),
                "totalPoints": parse_float(tds[3].text),
            }
            points += line["totalPoints"]
            data.append(line)
        champ = {
            "idChamp":
            params["catRCtrl"].upper() + "-" + params["year"] + "-D",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "D"
        }
        ret.append(pilots)
        ret.append(champ)
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Championship", [pilots, champ])
        return "::: ERROR CHAMP DRIVERS :::"
Example #3
0
def get_champD(driver, params):
    champ = {}
    data = []
    pilots = []
    pilot = {}
    ret = []
    try:
        print("::: CHAMPIONSHIP DRIVERS")
        items = WebDriverWait(driver, 30).until(
            lambda d: d.find_elements_by_xpath(
                "//tbody/tr")
        )
        points = 0
        for it in range(0, len(items)):
            tds = items[it].find_elements_by_xpath("./td")
            idDriver = tds[2].text
            idPlayer = params["catRCtrl"].upper() + "-" + \
                idDriver.replace(" ", "_", 9).replace(",", "")
            line = {
                "idPlayer": idPlayer,
                "position": parse_int(tds[0].text),
                "totalPoints": parse_float(tds[4].text),
                "cups": parse_int(tds[5].text.replace("x", "")),
            }
            strFanart4 = get_brand_logo(tds[3].text)
            pilot = {
                "idPlayer": idPlayer,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idPlayer,
                "strPlayer": idDriver.title(),
                "strTeam": tds[3].text,
                "strNumber": tds[1].text,
                "strFanart4": strFanart4,
                "numSeason": parse_int(params["year"]),
                "isOnlyImg": False
            }
            pilots.append(pilot)
            points += line["totalPoints"]
            data.append(line)
        champ = {
            "idChamp": params["catRCtrl"].upper() + "-" + params["year"] + "-D",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "D"
        }
        ret.append(pilots)
        ret.append(champ)
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Championship", [pilots, champ])
        return "::: ERROR CHAMP DRIVERS :::"
Example #4
0
def get_champD(driver, params):
    champ = {}
    data = []
    try:
        print("::: CHAMPIONSHIP DRIVERS")
        btn_show = None
        try:
            btn_show = WebDriverWait(driver, 30).until(
                lambda d: d.find_element_by_xpath('//button[@class="hFZZS"]'))
            btn_show.click()
        except Exception as e:
            logger(e, True, "Championship", btn_show)
            pass
        time.sleep(5)
        tables = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//table"))
        for table in range(0, len(tables)):
            th = tables[table].find_element_by_xpath("./thead/tr/th[1]").text
            if (th == "Pos."):
                points = 0
                trs = tables[table].find_elements_by_xpath("./tbody/tr")
                for tr in range(0, len(trs)):
                    tds = trs[tr].find_elements_by_xpath("./td")
                    linkDriver = get_link_MSS(tds[1])
                    idDriver = get_id_link_MSS(params["urlBase"], linkDriver,
                                               "D")
                    line = {
                        "idPlayer": idDriver,
                        "position": parse_int(tds[0].text),
                        "totalPoints": parse_float(tds[2].text),
                    }
                    points += line["totalPoints"]
                    data.append(line)
                champ = {
                    "idChamp":
                    params["catRCtrl"].upper() + "-" + params["year"] + "-D",
                    "numSeason": parse_int(params["year"]),
                    "strSeason": params["year"],
                    "idCategory": params["catRCtrl"],
                    "idRCtrl": params["catOrigen"],
                    "idMss": params["catOrigen"],
                    "data": data,
                    "sumPoints": points,
                    "typeChamp": "D"
                }
                break
        logger(champ)
        print("::: PROCESS FINISHED :::")
        return champ
    except Exception as e:
        logger(e, True, "Championship", champ)
        return "::: ERROR CHAMP DRIVERS :::"
Example #5
0
def get_champD(driver, params):
    champ = {}
    pilots = []
    data = []
    ret = []
    try:
        print("::: CHAMPIONSHIP DRIVERS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//tbody/tr"))
        points = 0
        for it in range(1, len(items)):
            tds = items[it].find_elements_by_xpath("./td")
            nameDriver = tds[2].text
            text = nameDriver.split(",")
            idDriver = text[1].strip().replace(" ", "-",
                                               9) + "-" + text[0].strip()
            line = {
                "idPlayer": idDriver.lower(),
                "position": parse_int(tds[0].text),
                "totalPoints": parse_float(tds[len(tds) - 1].text),
            }
            points += line["totalPoints"]
            data.append(line)
            pilot = {
                "idPlayer":
                params["catRCtrl"].upper() + "-" + idDriver.lower(),
                "idCategory": params["catRCtrl"],
                "idRCtrl": idDriver.lower(),
                "strPlayer": (text[1].strip() + " " + text[0].strip()).title(),
                "strNumber": tds[1].text,
                "numSeason": parse_int(params["year"]),
            }
            pilots.append(pilot)
        champ = {
            "idChamp":
            params["catRCtrl"].upper() + "-" + params["year"] + "-D",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "D"
        }
        ret.append(pilots)
        ret.append(champ)
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Championship", [pilots, champ])
        return "::: ERROR CHAMP DRIVERS :::"
Example #6
0
def get_champD(driver, params):
    champ = {}
    data = []
    try:
        print("::: CHAMPIONSHIP DRIVERS")
        items = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath(
                "//table[@id='table-hidden-content']/tbody/tr"))
        points = 0
        for it in range(0, len(items)):
            tds = items[it].find_elements_by_xpath("./td")
            linkDriver = get_link_GPU(tds[2])
            idDriver = get_id_link_GPU(params, linkDriver, "D")
            line = {
                "idPlayer": idDriver,
                "position": parse_int(tds[0].text.replace("°", "")),
                "totalPoints": parse_float(tds[5].text),
                "cups": parse_int(tds[3].text),
            }
            points += line["totalPoints"]
            data.append(line)
        champ = {
            "idChamp":
            params["catRCtrl"].upper() + "-" + params["year"] + "-D",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "D"
        }
        logger(champ)
        print("::: PROCESS FINISHED :::")
        return champ
    except Exception as e:
        logger(e, True, "Championship", champ)
        return "::: ERROR CHAMP DRIVERS :::"
Example #7
0
def get_drivers(driver, params):
    pilots = []
    champ = {}
    data = []
    ret = []
    try:
        print("::: DRIVERS")
        items = WebDriverWait(driver,
                              30).until(lambda d: d.find_elements_by_xpath(
                                  "//tbody/tr[@class='TabResData']"))
        points = 0
        for it in range(0, len(items) - 1):
            tds = items[it].find_elements_by_xpath("./td")
            thumb = tds[0].find_element_by_xpath(".//img").get_attribute("src")
            if ("sin_foto" in thumb or "sin_foto" in thumb):
                thumb = ""
            lastre = "Lastre: " + tds[4].text
            text = tds[1].get_attribute('innerHTML').split("\n")
            strPlayer = text[0].strip()
            idDriver = tds[2].text + "_" + strPlayer.replace(" ", "_", 9)
            text = text[1].strip().replace("  ", "@", 1).split("@")
            strTeam = text[0].strip()
            idTeam = strTeam.lower().replace(" ", "_", 9)
            strBirth = ""
            if (len(text) > 1):
                strBirth = text[1].strip()
            pilot = {
                "idPlayer": params["catRCtrl"].upper() + "-" + idDriver,
                "idCategory": params["catRCtrl"],
                "idRCtrl": idDriver,
                "strPlayer": strPlayer,
                "strNumber": tds[2].text,
                "idTeam": params["catRCtrl"].upper() + "-" + idTeam,
                "strTeam": strTeam,
                "strTeam2": tds[5].text,
                "dateBorn": tds[8].text,
                "strBirthLocation": strBirth.title(),
                "strSide": lastre,
                "numSeason": parse_int(params["year"]),
                "strFanart4": get_brand_logo(tds[5].text),
                "strThumb": thumb,
                "strCutout": thumb,
                "strRender": thumb.replace("/thumb/", "/mediana/"),
                "strRSS": thumb,
            }
            pilots.append(pilot)
            line = {
                "idPlayer": idDriver,
                "position": it + 1,
                "totalPoints": parse_float(tds[3].text),
            }
            points += line["totalPoints"]
            data.append(line)
        champ = {
            "idChamp":
            params["catRCtrl"].upper() + "-" + params["year"] + "-D",
            "numSeason": parse_int(params["year"]),
            "strSeason": params["year"],
            "idCategory": params["catRCtrl"],
            "idRCtrl": params["catOrigen"],
            "data": data,
            "sumPoints": points,
            "typeChamp": "D"
        }
        ret.append(pilots)
        ret.append(champ)
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Drivers", [pilots, champ])
        return "::: ERROR DRIVERS :::"
Example #8
0
def get_champC(driver, params):
    ret = []
    teams = []
    data = []
    champ = {}
    try:
        print("::: CHAMPIONSHIP CONSTRUCTORS")
        btn_show = None
        try:
            btn_show = WebDriverWait(driver, 30).until(
                lambda d: d.find_element_by_xpath('//button[@class="hFZZS"]'))
            btn_show.click()
        except Exception as e:
            logger(e, True, "Championship", btn_show)
            pass
        time.sleep(5)
        tables = WebDriverWait(
            driver, 30).until(lambda d: d.find_elements_by_xpath("//table"))
        pos = 0
        for table in range(0, len(tables)):
            th = tables[table].find_element_by_xpath("./thead/tr/th[1]").text
            if (th == "Pos."):
                if (pos == 0):
                    pos = 1
                    continue
                points = 0
                trs = tables[table].find_elements_by_xpath("./tbody/tr")
                for tr in range(0, len(trs)):
                    tds = trs[tr].find_elements_by_xpath("./td")
                    linkTeam = get_link_CMSS(tds[1])
                    if (linkTeam == ""):
                        idMss = (tds[1].text).lower().replace(" ", "-", 9)
                        idTeam = params["catRCtrl"].upper() + "-C-" + idMss
                        idRCtrl = idTeam
                    else:
                        idMss = get_id_link_MSS(params["urlBase"], linkTeam,
                                                "T")
                        idTeam = params["catRCtrl"].upper() + "-" + idMss
                        idRCtrl = idMss
                    strTeam = tds[1].text
                    team = {
                        "idTeam": idTeam,
                        "strTeam": strTeam,
                        "idCategory": params["catRCtrl"],
                        "idRCtrl": idRCtrl,
                        "idMss": idMss,
                        "numSeason": parse_int(params["year"]),
                        "strTeamFanart4": get_brand_logo(strTeam),
                        "strGender": "C",
                        "strRSS": linkTeam
                    }
                    teams.append(team)
                    line = {
                        "idPlayer": idRCtrl,
                        "position": parse_int(tds[0].text),
                        "totalPoints": parse_float(tds[2].text),
                    }
                    points += line["totalPoints"]
                    data.append(line)
                champ = {
                    "idChamp":
                    params["catRCtrl"].upper() + "-" + params["year"] + "-C",
                    "numSeason": parse_int(params["year"]),
                    "strSeason": params["year"],
                    "idCategory": params["catRCtrl"],
                    "idRCtrl": params["catOrigen"],
                    "idMss": params["catOrigen"],
                    "data": data,
                    "sumPoints": points,
                    "typeChamp": "C"
                }
                ret.append(teams)
                ret.append(champ)
                break
        logger(ret)
        print("::: PROCESS FINISHED :::")
        return ret
    except Exception as e:
        logger(e, True, "Championship", [teams, champ])
        return "::: ERROR CHAMP CONSTRUCTORS :::"