78 lines
2.8 KiB
Python
78 lines
2.8 KiB
Python
from selenium import webdriver
|
|
from selenium.webdriver.common.by import By
|
|
from selenium.webdriver.common.keys import Keys
|
|
from selenium.webdriver.chrome.service import Service
|
|
from selenium.webdriver.chrome.options import Options
|
|
import time
|
|
import csv
|
|
|
|
|
|
import pandas as pd
|
|
|
|
|
|
df = pd.read_csv('links.csv', delimiter=';')
|
|
|
|
# Konfiguracja opcji dla przeglądarki Chrome (opcjonalnie)
|
|
chrome_options = Options()
|
|
chrome_options.add_argument("--headless") # Działa w tle, bez GUI
|
|
chrome_options.add_argument("--disable-gpu") # Wymagane w trybie headless w systemie Windows
|
|
chrome_options.add_argument("--no-sandbox") # Wymagane w systemie Linux
|
|
chrome_options.add_argument("--disable-dev-shm-usage") # Zmniejsza zużycie zasobów
|
|
|
|
# Ścieżka do chromedriver
|
|
service = Service(executable_path='./chromedriver.exe')
|
|
|
|
# Inicjalizacja przeglądarki
|
|
driver = webdriver.Chrome(service=service, options=chrome_options)
|
|
|
|
try:
|
|
|
|
# Otwórz stronę logowania
|
|
driver.get("https://edu.gotoit.pl/index.php/logowanie")
|
|
|
|
# Znajdź pola logowania i wprowadź dane
|
|
username_field = driver.find_element(By.ID, 'user_login') # Zaktualizuj selektor, jeśli to konieczne
|
|
password_field = driver.find_element(By.ID, 'user_pass') # Zaktualizuj selektor, jeśli to konieczne
|
|
|
|
# Wprowadź dane logowania (upewnij się, że używasz właściwych danych)
|
|
username_field.send_keys('pawel.domanski@outlook.com')
|
|
password_field.send_keys('sisuCeqExO')
|
|
|
|
# Wyślij formularz
|
|
password_field.send_keys(Keys.RETURN)
|
|
|
|
# Poczekaj chwilę, aby upewnić się, że logowanie się powiodło
|
|
time.sleep(3) # Możesz dostosować czas oczekiwania w zależności od szybkości działania strony
|
|
for index, row in df.iterrows():
|
|
print(row['Link'])
|
|
# Przejdź do konkretnej strony narzędzia
|
|
driver.get(row['Link'])
|
|
|
|
# Poczekaj chwilę, aby strona się w pełni załadowała
|
|
time.sleep(2) # Możesz dostosować czas oczekiwania
|
|
|
|
# Zczytaj wartość elementu wpi-page-title
|
|
title_element = driver.find_element(By.CLASS_NAME, 'wpi-page-title')
|
|
title_text = title_element.text
|
|
|
|
# Wyświetl wynik
|
|
print(f"wpi-page-title: {title_text}")
|
|
|
|
prompts = driver.find_element(By.ID, 'prompts-container')
|
|
elements = prompts.find_elements(By.TAG_NAME, 'code')
|
|
# Wyświetl wynik
|
|
|
|
with open('code_elements.csv', mode='a', newline='', encoding='utf-8') as file:
|
|
writer = csv.writer(file, delimiter=';')
|
|
#Dodaj nagłówki, jeśli potrzebne
|
|
if file.tell() == 0:
|
|
writer.writerow(['Code Content', 'Paragraph Content'])
|
|
|
|
for element in elements[::1]:
|
|
print("Zapis do pliku")
|
|
writer.writerow([title_text,element.text])
|
|
|
|
finally:
|
|
# Zamknij przeglądarkę
|
|
driver.quit()
|