May 17, 2026, 11:40 PM
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
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}")
|
||||
Reference in New Issue
Block a user