URL auf Webpage öffnen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Assassin4711
User
Beiträge: 77
Registriert: Mittwoch 8. September 2021, 14:22

@ 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()

rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

Na, also! Herzlichen Glückwunsch!
Antworten