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 :::"
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 :::"
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 :::"
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 :::"
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 :::"
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 :::"
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 :::"
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 :::"