Seite 3 von 3

Re: URL auf Webpage öffnen

Verfasst: Montag 27. September 2021, 22:05
von Assassin4711
@ rogerb

Nochmal ganz ganz vielen Dank für deine Unterstützung. Ich habe jetzt den ersten python Part meines Tool hinbekommen. Und das nur weil du mir soviel geholfen hast.

Ein ganz großes DANKESCHÖN!!!

Und hier der fertige Teil des Tools:

Code: Alles auswählen

import datetime
import pandas as pd

from selenium import webdriver
from openpyxl import Workbook
from datetime import date
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wb = Workbook()
ws = wb.active
tomorrow = datetime.datetime.now() + datetime.timedelta(days=1)

# Browser verbinden
driver = webdriver.Chrome('C:\webdrivers\chromedriver.exe')
driver.get("https://www.oddsportal.com/login/")

# User Login
username = driver.find_element_by_xpath('//*[@id="login-username1"]')
username.send_keys("Username")

password = driver.find_element_by_xpath('//*[@id="login-password1"]')
password.send_keys("Password")

login = driver.find_element_by_xpath('//*[@id="col-content"]/div[3]/div/form/div[3]/button/span/span')
login.click()

def iter_stripped_texts(elements, start_index=None, end_index=None):
    return (element.text.strip() for element in elements[slice(start_index, end_index)])

driver.get("https://www.oddsportal.com/matches/tennis/" + tomorrow.strftime("%Y%m%d") + "/")

match_tbl = driver.find_element_by_id("table-matches")
rows = match_tbl.find_elements_by_tag_name("tr")

urls = []

# Tabelle analysieren und Daten ermitteln
for row in rows:
    if "dark" not in row.get_attribute("class"):
        cells = row.find_elements_by_tag_name("td")
        a_tag = cells[1].find_elements_by_tag_name("a")[0]
        if "javascript:void(0);" not in a_tag.get_attribute("href"):
            urls.append(a_tag.get_attribute("href"))
        elif "javascript:void(0);" in a_tag.get_attribute("href"):
            a_tag = cells[1].find_elements_by_tag_name("a")[1]
            urls.append(a_tag.get_attribute("href"))

for url in urls:
    driver.get(url)
    #print(driver.find_element_by_css_selector("#breadcrumb > a:nth-child(4)").get_attribute('href'))
    df_sport = (WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#breadcrumb > a:nth-child(3)"))).get_attribute('text'))
    df_country = (WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#breadcrumb > a:nth-child(4)"))).get_attribute('text'))
    df_tournament = (WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#breadcrumb > a:nth-child(5)"))).get_attribute('text'))
    df_players = driver.find_element_by_tag_name("h1").text

    for row in driver.find_elements_by_css_selector("#odds-data-table > div:nth-child(1) > table > tbody > tr"):        
        if not "wool" in row.get_attribute("class"):
            cells = row.find_elements_by_tag_name("td")
            df_bookie = cells[0].text.replace("\n", "").strip()
            df_home_odd = cells[1].text.replace("\n", "").strip()
            df_away_odd = cells[2].text.replace("\n", "").strip()
            df_payout = cells[3].text.replace("\n", "").strip()
    
            print(df_sport , df_country , df_tournament , df_players , df_bookie , df_home_odd , df_away_odd , df_payout)
            ws.append([df_sport , df_country , df_tournament , df_players , df_bookie , df_home_odd , df_away_odd , df_payout])
                    
wb.save("F:\Testdatei\Tennis-" + tomorrow.strftime("%Y%m%d") + ".xlsx")
driver.close()


Re: URL auf Webpage öffnen

Verfasst: Montag 27. September 2021, 22:17
von rogerb
Na, also! Herzlichen Glückwunsch!