import json import random import time import selenium.common.exceptions from selenium import webdriver from selenium.webdriver.common.by import By from bs4 import BeautifulSoup from ui import run_gui from telebot import send_notification_msg x = run_gui() with open("config.json", "r") as file: file = json.load(file) hideBrowser = file["HIDEBROWSER"] URL = file["URL"] TELNO = file["TELNO"] SLEEPTIME = file["SLEEPTIME"] with open("useragents.txt", "r") as ua: signatures = ua.readlines() def fetch_data(driver): driver.get(URL) iframe = driver.find_element(By.ID, "SportsIframe") driver.switch_to.frame(iframe) r = driver.page_source soup = BeautifulSoup(r, 'html.parser') row = soup.find("nav", class_="TournamentList") data = row.find_all("li") return data def get_chromedriver(): chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--user-agent=%s' % signatures[random.randint(0, len(signatures) - 1)]) chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) if x[1]: chrome_options.add_argument("--headless=new") driver = webdriver.Chrome( options=chrome_options, executable_path="/chromedriver.exe") return driver def validate_data(data): with open("sentoutdatas.txt", "r") as fread: stored_data = fread.read().splitlines() fread.close() with open("sentoutdatas.txt", "a") as f: z = data.text if z in stored_data: print("Veri zaten kayıtlı.") return False else: print(f"{z} verisini kaydediyor ve mesaj olarak gönderiyorum.") f.write(f"{z}\n") return True while x[0]: try: driver = get_chromedriver() domainIndex = URL[22:25] data = fetch_data(driver) except selenium.common.exceptions.NoSuchElementException: print(f"Bu domainden cevap alamıyorum: " + URL) newDomainIndex = int(domainIndex) + 1 URL = URL.replace(domainIndex, str(newDomainIndex), 1) print("Sıradaki domaini deniyorum: " + URL +"\n") with open("config.json", "r") as updateFiler: json_data = json.load(updateFiler) json_data["URL"] = URL with open("config.json", "w") as updateFilew: updateFilew.write(json.dumps(json_data)) except AttributeError: print("Listelenmiş herhangi bir kupon yok.\n") time.sleep(int(SLEEPTIME) * 60) else: if len(data) > 0: for i in data: sendWPMsg = validate_data(i) if sendWPMsg: send_notification_msg(TELNO) print("Mesaj gönderildi.\n") time.sleep(int(SLEEPTIME) * 60)