Files
2026-05-18 06:40:19 +00:00

93 lines
3.5 KiB
Python

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}")