from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.common.exceptions import TimeoutException, NoSuchElementException, WebDriverException import re # Importujemy bibliotekę do pracy z wyrażeniami regularnymi def pobierz_ostatnia_liczbe(page): # Stała ścieżka XPath do elementu xpath = '/html/body/div[2]/section/div[1]/div/div[4]/div/div[3]/div/div/div' # Dynamiczny URL strony na podstawie parametru page url = f"https://www.futurepedia.io/ai-tools/ai-agents?page={page}" # Konfiguracja przeglądarki options = Options() options.add_argument('--headless') # Tryb bezgłowy options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') options.add_argument('--disable-gpu') options.add_argument('--window-size=1920,1080') # Ścieżka do ChromeDriver chromedriver_path = "./chromedriver.exe" # Upewnij się, że ścieżka do ChromeDriver jest poprawna # Utwórz instancję przeglądarki service = Service(executable_path=chromedriver_path) try: with webdriver.Chrome(service=service, options=options) as driver: # Ustawienie timeoutów driver.set_page_load_timeout(5) driver.implicitly_wait(5) # Otwórz stronę driver.get(url) try: # Znajdź wszystkie elementy pasujące do podanej ścieżki XPath elementy = driver.find_elements(By.XPATH, xpath) # Sprawdź, czy znaleziono jakiekolwiek elementy if elementy: # Pobierz ostatni element z listy ostatni_element = elementy[-1] # Podziel tekst na linie i wybierz ostatnią linię linie = ostatni_element.text.splitlines() if linie: ostatnia_linia = linie[-1] # Wyodrębnij liczbę z ostatniej linii liczby = re.findall(r'\d+', ostatnia_linia) if liczby: return int(liczby[-1]) # Zwraca ostatnią liczbę znalezioną w linii else: return "Brak liczby w ostatniej linii tekstu." else: return "Brak linii tekstu w ostatnim elemencie." else: return "Nie znaleziono żadnych elementów dla podanej ścieżki XPath." except NoSuchElementException: return "Element nie został znaleziony dla podanej ścieżki XPath." except TimeoutException: return "Czas ładowania strony został przekroczony." except WebDriverException as e: return f"Wystąpił błąd związany z WebDriverem: {e}" # znajdż maksymalną stronę def znajdz_maksymalne_x(): i = 99 poprzednie_x = 16 while True: # Oblicz aktualne x aktualne_x = pobierz_ostatnia_liczbe(i) # Sprawdź, czy x przestało rosnąć if aktualne_x == poprzednie_x: break # Aktualizuj poprzednie x poprzednie_x = aktualne_x print(f"Iteracja {i}: x = {aktualne_x}") # Przejdź do następnej iteracji i += 1 return poprzednie_x maksymalne_x = znajdz_maksymalne_x() print(f"Maksymalne x: {maksymalne_x}")