Einkauf_Suche/reichelt.py
2023-11-23 08:33:44 +01:00

59 lines
1.9 KiB
Python

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
def suche_auf_reichelt(suchbegriff, anzahl_ergebnisse=5):
# WebDriver initialisieren
driver = webdriver.Edge()
# Such-URL generieren
search_url = f'https://www.reichelt.de/index.html?ACTION=446&LA=446&nbc=1&SEARCH={suchbegriff}'
# Webseite aufrufen und auf das vollständige Laden warten
driver.get(search_url)
WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.ID, "searchbutton")))
# Suchbegriff eingeben und Suche starten
search_box = driver.find_element(By.ID, "quicksearch_new")
search_box.clear() # Falls vorheriger Text vorhanden ist
search_box.send_keys(suchbegriff)
# Formular abschicken
search_button = driver.find_element(By.ID, "searchbutton")
search_button.click()
# Auf das Laden der Suchergebnisse warten
# HTML-Inhalt der Suchergebnisse abrufen
soup = BeautifulSoup(driver.page_source, 'html.parser')
# Extrahiere die Links aus den Suchergebnissen
gefundene_links = [a['href'] for a in soup.find_all('a', class_='articlelink')]
# Ausgabe der gefundenen Links
if gefundene_links:
print("Gefundene Links:")
for link in gefundene_links:
print(link)
else:
print("Keine Ergebnisse gefunden.")
# Endlosschleife, um den Browser offen zu halten
input("Drücken Sie Enter, um den Browser zu schließen...")
# WebDriver schließen
driver.quit()
if __name__ == "__main__":
# Benutzereingabe
suchbegriff_reichelt = input("Welchen Artikel suchst du bei Reichelt? ")
# Suche nach dem Artikel und erhalte gefundene Links
gefundene_links_reichelt = suche_auf_reichelt(suchbegriff_reichelt)