Selenium göre oran çekme
import pandas as pd
from tinydb import TinyDB, Query
from selenium import webdriver
from time import sleep
from tqdm.auto import tqdm
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from datetime import date, timedelta
# Tarih ayarlama
bugun = date.today() + timedelta(1)
jogos_do_dia = TinyDB(f'Jogos_do_Dia_FlashScore_{bugun}.json')
# WebDriver ayarları
options = webdriver.ChromeOptions()
# options.add_argument('--headless') # Başsız modda çalıştırmak için bu satırı kullanabilirsiniz.
s = Service('C:/mavi/chromedriver.exe') # Chromedriver yolunu güncelleyin
driver = webdriver.Chrome(service=s, options=options)
driver.maximize_window()
# Sayfayı aç
url = 'https://www.flashscore.co.uk/football/france/ligue-1/results/'
driver.get(url)
# Çerez kabul butonunu kapatma
try:
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'button#onetrust-accept-btn-handler')))
driver.find_element(By.CSS_SELECTOR, 'button#onetrust-accept-btn-handler').click()
except Exception as e:
print("Çerezler zaten kapalı veya bulunamadı:", e)
# Maçları bulma
jogos = driver.find_elements(By.CSS_SELECTOR, 'div.event__match--twoLine')
id_jogos = [i.get_attribute("id")[4:] for i in jogos]
print(driver.title)
for id_jogo in tqdm(id_jogos):
procura_duplicado = Query()
if jogos_do_dia.search(procura_duplicado.Id == id_jogo) == []:
driver.get(f'https://www.flashscore.co.uk/match/{id_jogo}/#/match-summary/match-summary')
jogo = {}
try:
# Temel Bilgileri Alma
jogo['Id'] = id_jogo
country = driver.find_element(By.CSS_SELECTOR, 'span.tournamentHeader__country').text.split(':')[0]
tarih = driver.find_element(By.CSS_SELECTOR, 'div.duelParticipant__startTime').text.split(' ')[0]
jogo['TARİH'] = tarih.replace('/', '.')
saat = driver.find_element(By.CSS_SELECTOR, 'div.duelParticipant__startTime').text.split(' ')[1]
jogo['SAAT'] = saat
league = driver.find_element(By.CSS_SELECTOR, 'span.tournamentHeader__country > a').text.split(' -')[0]
jogo['LİG'] = f'{country} - {league}'
ev_sahibi = driver.find_element(By.CSS_SELECTOR, 'div.duelParticipant__home .participant__participantName').text
jogo['EV SAHİBİ'] = ev_sahibi
deplasman = driver.find_element(By.CSS_SELECTOR, 'div.duelParticipant__away .participant__participantName').text
jogo['DEPLASMAN'] = deplasman
# Maç Özetini Alma
try:
incidents_header = driver.find_elements(By.CSS_SELECTOR, 'div.smv__incidentsHeader.section__title')
if len(incidents_header) >= 2: # Hem 1. Yarı hem de 2. Yarı bilgilerini al
first_half = incidents_header[0].find_elements(By.TAG_NAME, 'div')
second_half = incidents_header[1].find_elements(By.TAG_NAME, 'div')
jogo['İY SKOR'] = first_half[1].text.replace(' - ', '-')
jogo['İKY SKOR'] = second_half[1].text.replace(' - ', '-')
except Exception as e:
print(f"Yarı skoru alınamadı: {e}")
# Skor Alma
skor = driver.find_element(By.CSS_SELECTOR, 'div.duelParticipant__score').text.replace('FINISHED', '').strip()
jogo['MS SKOR'] = skor
# Maç Odds'larını Alma
url_ml_full_time = f'https://www.flashscore.co.uk/match/{id_jogo}/#/odds-comparison/1x2-odds/full-time'
driver.get(url_ml_full_time)
sleep(1)
if driver.current_url == url_ml_full_time:
WebDriverWait(driver, 8).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.ui-table')))
table_odds = driver.find_element(By.CSS_SELECTOR, 'div.ui-table')
odds_elements = table_odds.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')
# Oranları alma
for index, odds in enumerate(odds_elements):
title_text = odds.get_attribute('title')
if title_text: # title varsa
if index == 0:
jogo['MS1 A'] = title_text.split('»')[0].strip() # 1. Açılış oranı
elif index == 1:
jogo['MSX A'] = title_text.split('»')[0].strip() # 2. Açılış oranı
elif index == 2:
jogo['MS2 A'] = title_text.split('»')[0].strip() # 3. Açılış oranı
else: # title yoksa
if index == 0:
jogo['MS1 A'] = odds.text.strip() # 1. Oran metni
elif index == 1:
jogo['MSX A'] = odds.text.strip() # 2. Oran metni
elif index == 2:
jogo['MS2 A'] = odds.text.strip() # 3. Oran metni
# Ekstra Oran Bilgileri
driver.get(url_ml_full_time)
sleep(1)
if driver.current_url == url_ml_full_time:
WebDriverWait(driver, 8).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.ui-table')))
table_odds = driver.find_element(By.CSS_SELECTOR, 'div.ui-table')
linha_ml_ft = table_odds.find_element(By.CSS_SELECTOR, 'div.ui-table__row')
jogo['MS1 K'] = format(float(linha_ml_ft.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')[0].text.replace(',', '.')), '.2f')
jogo['MSX K'] = format(float(linha_ml_ft.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')[1].text.replace(',', '.')), '.2f')
jogo['MS2 K'] = format(float(linha_ml_ft.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')[2].text.replace(',', '.')), '.2f')
# İlk Yarı Odds'larını Alma
url_ml_1st_half = f'https://www.flashscore.co.uk/match/{id_jogo}/#/odds-comparison/1x2-odds/1st-half'
driver.get(url_ml_1st_half)
sleep(1)
if driver.current_url == url_ml_1st_half:
WebDriverWait(driver, 8).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.ui-table')))
table_odds = driver.find_element(By.CSS_SELECTOR, 'div.ui-table')
odds_elements = table_odds.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')
# Oranları alma
for index, odds in enumerate(odds_elements):
title_text = odds.get_attribute('title')
if title_text: # title varsa
if index == 0:
jogo['İY1 A'] = title_text.split('»')[0].strip() # 1. Açılış oranı
elif index == 1:
jogo['İYX A'] = title_text.split('»')[0].strip() # 2. Açılış oranı
elif index == 2:
jogo['İY2 A'] = title_text.split('»')[0].strip() # 3. Açılış oranı
else: # title yoksa
if index == 0:
jogo['İY1 A'] = odds.text.strip() # 1. Oran metni
elif index == 1:
jogo['İYX A'] = odds.text.strip() # 2. Oran metni
elif index == 2:
jogo['İY2 A'] = odds.text.strip() # 3. Oran metni
# Ekstra Oran Bilgileri
driver.get(url_ml_1st_half)
sleep(1)
if driver.current_url == url_ml_1st_half:
WebDriverWait(driver, 8).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.ui-table')))
table_odds = driver.find_element(By.CSS_SELECTOR, 'div.ui-table')
linha_ml_1st_half = table_odds.find_element(By.CSS_SELECTOR, 'div.ui-table__row')
jogo['İY1 K'] = format(float(linha_ml_1st_half.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')[0].text.replace(',', '.')), '.2f')
jogo['İYX K'] = format(float(linha_ml_1st_half.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')[1].text.replace(',', '.')), '.2f')
jogo['İY2 K'] = format(float(linha_ml_1st_half.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')[2].text.replace(',', '.')), '.2f')
# İkinci Yarı Odds'larını Alma
url_ml_2nd_half = f'https://www.flashscore.co.uk/match/{id_jogo}/#/odds-comparison/1x2-odds/2nd-half'
driver.get(url_ml_2nd_half)
sleep(1)
if driver.current_url == url_ml_2nd_half:
WebDriverWait(driver, 8).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.ui-table')))
table_odds = driver.find_element(By.CSS_SELECTOR, 'div.ui-table')
odds_elements = table_odds.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')
# Oranları alma
for index, odds in enumerate(odds_elements):
title_text = odds.get_attribute('title')
if title_text: # title varsa
if index == 0:
jogo['İKY1 A'] = title_text.split('»')[0].strip() # 1. Açılış oranı
elif index == 1:
jogo['İKYX A'] = title_text.split('»')[0].strip() # 2. Açılış oranı
elif index == 2:
jogo['İKY2 A'] = title_text.split('»')[0].strip() # 3. Açılış oranı
else: # title yoksa
if index == 0:
jogo['İKY1 A'] = odds.text.strip() # 1. Oran metni
elif index == 1:
jogo['İKYX A'] = odds.text.strip() # 2. Oran metni
elif index == 2:
jogo['İKY2 A'] = odds.text.strip() # 3. Oran metni
# Ekstra Oran Bilgileri
driver.get(url_ml_2nd_half)
sleep(1)
if driver.current_url == url_ml_2nd_half:
WebDriverWait(driver, 8).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.ui-table')))
table_odds = driver.find_element(By.CSS_SELECTOR, 'div.ui-table')
linha_ml_2nd_half = table_odds.find_element(By.CSS_SELECTOR, 'div.ui-table__row')
jogo['İKY1 K'] = format(float(linha_ml_2nd_half.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')[0].text.replace(',', '.')), '.2f')
jogo['İKYX K'] = format(float(linha_ml_2nd_half.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')[1].text.replace(',', '.')), '.2f')
jogo['İKY2 K'] = format(float(linha_ml_2nd_half.find_elements(By.CSS_SELECTOR, 'a.oddsCell__odd')[2].text.replace(',', '.')), '.2f') selenium göre flashscore sitesinde bet365 oranları çekiyorum ama bir sıkıntı var bet365 oran açılmayan maçlar başka firmanın oran alıyor bunu çözmek için yardımcı olacak varmı?
SSD uyumlu
ANAKART: GIGABYTE GA-Z97X-GAMING 5 INTEL Z97, DDR3, LGA1150, SATA6Gb/s, USB3.0, D-SUB, DVI, HDMI ATX
Samsung 250GB 970 EVO PLUS NVMe M.2 SSD (Okuma Hızı 3500MB / Yazma Hızı 2300MB)
Alasam uyumlu mu ?
Konut kredisi
|
40.000 ile 45.000 arası araba almak
|
Oddsportal sitesinde veri çekme
|
Arkadaşlar jeton cüzdan hakkında bilgisi olan varmı ?
|
Vodafone faturalı hattında turkcell geçmek
|
Tlnakit
|
Ecocard ile ilgili
|
1/0 ve 2/0 oranları nasıl buluruz..
|
Son Giriş: 4 gün önce
Son Mesaj Zamanı: 3 hafta
Mesaj Sayısı: 108
Gerçek Toplam Mesaj Sayısı: 160
İkinci El Bölümü Mesajları: 1
Konularının görüntülenme sayısı: 4.470 (Bu ay: 167)
Toplam aldığı artı oy sayısı: 9 (Bu hafta: 0)
En çok mesaj yazdığı forum bölümü: Mobil Cihazlar