diff --git a/__pycache__/boettcher.cpython-311.pyc b/__pycache__/boettcher.cpython-311.pyc deleted file mode 100644 index 803f7b2..0000000 Binary files a/__pycache__/boettcher.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/brewes.cpython-311.pyc b/__pycache__/brewes.cpython-311.pyc deleted file mode 100644 index b722d6e..0000000 Binary files a/__pycache__/brewes.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/bueroshop.cpython-311.pyc b/__pycache__/bueroshop.cpython-311.pyc deleted file mode 100644 index e4e5c8e..0000000 Binary files a/__pycache__/bueroshop.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/conrad.cpython-311.pyc b/__pycache__/conrad.cpython-311.pyc deleted file mode 100644 index 3cadc06..0000000 Binary files a/__pycache__/conrad.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/contorion.cpython-311.pyc b/__pycache__/contorion.cpython-311.pyc deleted file mode 100644 index 8c24a0a..0000000 Binary files a/__pycache__/contorion.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/delker.cpython-311.pyc b/__pycache__/delker.cpython-311.pyc deleted file mode 100644 index 0059d91..0000000 Binary files a/__pycache__/delker.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/esmeyer.cpython-311.pyc b/__pycache__/esmeyer.cpython-311.pyc deleted file mode 100644 index feca087..0000000 Binary files a/__pycache__/esmeyer.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/gastrokaufhaus.cpython-311.pyc b/__pycache__/gastrokaufhaus.cpython-311.pyc deleted file mode 100644 index 10d326b..0000000 Binary files a/__pycache__/gastrokaufhaus.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/gastroteileshop.cpython-311.pyc b/__pycache__/gastroteileshop.cpython-311.pyc deleted file mode 100644 index 9654c1d..0000000 Binary files a/__pycache__/gastroteileshop.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/haefele.cpython-311.pyc b/__pycache__/haefele.cpython-311.pyc deleted file mode 100644 index 4f9288e..0000000 Binary files a/__pycache__/haefele.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/hornbach.cpython-311.pyc b/__pycache__/hornbach.cpython-311.pyc deleted file mode 100644 index dc2b515..0000000 Binary files a/__pycache__/hornbach.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/hygi.cpython-311.pyc b/__pycache__/hygi.cpython-311.pyc deleted file mode 100644 index a4ce215..0000000 Binary files a/__pycache__/hygi.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/ips.cpython-311.pyc b/__pycache__/ips.cpython-311.pyc deleted file mode 100644 index 8fe5272..0000000 Binary files a/__pycache__/ips.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/knauss.cpython-311.pyc b/__pycache__/knauss.cpython-311.pyc deleted file mode 100644 index 48951bd..0000000 Binary files a/__pycache__/knauss.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/kosatec.cpython-311.pyc b/__pycache__/kosatec.cpython-311.pyc deleted file mode 100644 index d6d437f..0000000 Binary files a/__pycache__/kosatec.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/lusini.cpython-311.pyc b/__pycache__/lusini.cpython-311.pyc deleted file mode 100644 index bf54962..0000000 Binary files a/__pycache__/lusini.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/megabad.cpython-311.pyc b/__pycache__/megabad.cpython-311.pyc deleted file mode 100644 index c5c6ce6..0000000 Binary files a/__pycache__/megabad.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/papstar.cpython-311.pyc b/__pycache__/papstar.cpython-311.pyc deleted file mode 100644 index 270b882..0000000 Binary files a/__pycache__/papstar.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/reichelt.cpython-311.pyc b/__pycache__/reichelt.cpython-311.pyc deleted file mode 100644 index ccd38a6..0000000 Binary files a/__pycache__/reichelt.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/schafferer.cpython-311.pyc b/__pycache__/schafferer.cpython-311.pyc deleted file mode 100644 index 485cbe5..0000000 Binary files a/__pycache__/schafferer.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/schildershop24.cpython-311.pyc b/__pycache__/schildershop24.cpython-311.pyc deleted file mode 100644 index 437e0af..0000000 Binary files a/__pycache__/schildershop24.cpython-311.pyc and /dev/null differ diff --git a/__pycache__/tiroled.cpython-311.pyc b/__pycache__/tiroled.cpython-311.pyc deleted file mode 100644 index c5f0d8d..0000000 Binary files a/__pycache__/tiroled.cpython-311.pyc and /dev/null differ diff --git a/boettcher.py b/boettcher.py deleted file mode 100644 index 6cfdfe4..0000000 --- a/boettcher.py +++ /dev/null @@ -1,84 +0,0 @@ -from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import sys - -class WebseitenSucheApp(QWidget): - def __init__(self): - super().__init__() - - self.initUI() - - def initUI(self): - # GUI-Elemente erstellen - self.exit_button = QPushButton('Beenden', self) - - # Layout erstellen - vbox = QVBoxLayout() - vbox.addWidget(self.exit_button) - - # Verbinden Sie den Exit-Button mit der Funktion - self.exit_button.clicked.connect(QApplication.quit) - - # Setzen Sie das Layout - self.setLayout(vbox) - - # Fenster Eigenschaften setzen - self.setWindowTitle('Webseiten Suchapp') - self.setGeometry(300, 300, 300, 150) - -def suche_auf_boettcher(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.bueromarkt-ag.de/' # Bitte die tatsächliche URL einsetzen - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "autocomplete-0-input"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "autocomplete-0-input") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten (falls notwendig) - search_box.send_keys(Keys.RETURN) - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - #input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - app = QApplication(sys.argv) - window = WebseitenSucheApp() - window.show() - - # Benutzereingabe - suchbegriff_boettcher = input("Nach welchen Produkten suchen Sie auf boettcher.de? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_boettcher(suchbegriff_boettcher) - - sys.exit(app.exec_()) diff --git a/brewes.py b/brewes.py deleted file mode 100644 index 53b13bd..0000000 --- a/brewes.py +++ /dev/null @@ -1,53 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_brewes(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.brewes.de/catalogsearch/result?q=' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "search"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "search") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - search_box.send_keys(Keys.RETURN) - - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_brewes = input("Nach welchem Produkt suchen Sie auf Brewes? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_brewes(suchbegriff_brewes) diff --git a/bueroshop.py b/bueroshop.py deleted file mode 100644 index a1e7720..0000000 --- a/bueroshop.py +++ /dev/null @@ -1,53 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_bueroshop24(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.bueroshop24.de/' # Bitte die tatsächliche URL einsetzen - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "searchTerm"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "searchTerm") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten (falls notwendig) - search_box.send_keys(Keys.RETURN) - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_bueroshop24 = input("Nach welchen Produkten suchen Sie auf bueroshop24.de? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_bueroshop24(suchbegriff_bueroshop24) diff --git a/conrad.py b/conrad.py deleted file mode 100644 index 46f86ac..0000000 --- a/conrad.py +++ /dev/null @@ -1,55 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.keys import Keys -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_conrad(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # Such-URL generieren - search_url = f'https://www.conrad.de/search.html?search={suchbegriff}' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "header-search"))) - - # Suchbegriff eingeben - search_box = driver.find_element(By.ID, "header-search") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken - search_box.send_keys(Keys.RETURN) - - # Auf das Laden der Suchergebnisse warten (falls erforderlich) - # Hier könnte man zum Beispiel warten, bis ein bestimmtes Element auf der Ergebnisseite erscheint. - - # 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_='product-name')] - - # 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_conrad = input("Welchen Artikel suchst du bei Conrad? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_conrad(suchbegriff_conrad) diff --git a/contorion.py b/contorion.py deleted file mode 100644 index 7df9fad..0000000 --- a/contorion.py +++ /dev/null @@ -1,55 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.keys import Keys -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_contorion(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # Such-URL generieren - search_url = f'https://www.contorion.de/suche?q={suchbegriff}' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "search-input"))) - - # Suchbegriff eingeben - search_box = driver.find_element(By.ID, "search-input") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken - search_box.send_keys(Keys.RETURN) - - # Auf das Laden der Suchergebnisse warten (falls erforderlich) - # Hier könnte man zum Beispiel warten, bis ein bestimmtes Element auf der Ergebnisseite erscheint. - - # 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_='c-product-tile__title')] - - # 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_contorion = input("Welchen Artikel suchst du bei Contorion? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_contorion(suchbegriff_contorion) diff --git a/delker.py b/delker.py deleted file mode 100644 index e2e9d9b..0000000 --- a/delker.py +++ /dev/null @@ -1,55 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_delker(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.delker2business.com/nw2017/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "query"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.NAME, "query") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten - search_box.send_keys(Keys.RETURN) - - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_delker = input("Nach welchem Produkt suchen Sie auf Delker? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_delker(suchbegriff_delker) diff --git a/einkauf_suche.py b/einkauf_suche.py new file mode 100644 index 0000000..fa4dd94 --- /dev/null +++ b/einkauf_suche.py @@ -0,0 +1,597 @@ +from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QCheckBox, QMessageBox +from concurrent.futures import ThreadPoolExecutor +from PyQt5.QtCore import Qt, QThread, pyqtSignal +from selenium import webdriver +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC +from bs4 import BeautifulSoup +import sys + +class SearchThread(QThread): + search_finished = pyqtSignal() + + def __init__(self, selected_webpages, search_term, parent=None): + super(SearchThread, self).__init__(parent) + self.selected_webpages = selected_webpages + self.search_term = search_term + self.error_message = None + + def run(self): + try: + + + with ThreadPoolExecutor() as executor: + futures = [] + + + + for webseite in self.selected_webpages: + # Fügen hier andere Suchfunktionen hinzu + # WebDriver initialisieren + self.driver = webdriver.Edge() + + if webseite == "Reichelt": + futures.append(executor.submit(self.suche_auf_reichelt)) + elif webseite == "Conrad": + futures.append(executor.submit(self.suche_auf_conrad)) + elif webseite == "Kosatec": + futures.append(executor.submit(self.suche_auf_kosatec)) + elif webseite == "Hornbach": + futures.append(executor.submit(self.suche_auf_hornbach)) + elif webseite =="Contorion": + futures.append(executor.submit(self.suche_auf_contorion)) + elif webseite == "Gastro Teile Shop": + futures.append(executor.submit(self.suche_auf_gastroteileshop)) + elif webseite == "TiroLED": + futures.append(executor.submit(self.suche_auf_tiroled)) + elif webseite == "Megabad": + futures.append(executor.submit(self.suche_auf_megabad)) + elif webseite == "IPS": + futures.append(executor.submit(self.suche_auf_ips_shop, )) + elif webseite == "Brewes": + futures.append(executor.submit(self.suche_auf_brewes)) + elif webseite == "Delker": + futures.appen(executor.submit(self.suche_auf_delker)) + elif webseite == "Knauss": + futures.append(executor.submit(self.suche_auf_knauss)) + elif webseite == "Schildershop24": + futures.append(executor.submit(self.suche_auf_schildershop24)) + elif webseite == "Häfele": + futures.append(executor.submit(self.suche_auf_haefele)) + elif webseite == "Esmeyer": + futures.append(executor.submit(self.suche_auf_esmeyer)) + elif webseite == "Papstar": + futures.append(executor.submit(self.suche_auf_papstar)) + elif webseite == "Lusini": + futures.append(executor.submit(self.suche_auf_lusini)) + elif webseite == "Hygi": + futures.append(executor.submit(self.suche_auf_hygi)) + elif webseite == "Schafferer": + futures.append(executor.submit(self.suche_auf_schafferer)) + elif webseite == "Gastronomie Kaufhaus": + futures.append(executor.submit(self.suche_auf_gastronomie_kaufhaus)) + elif webseite == "Böttcher": + futures.append(executor.submit(self.suche_auf_boettcher)) + elif webseite == "Büroshop24": + futures.append(executor.submit(self.suche_auf_bueroshop24)) + + for future in futures: + future.result() # Warte auf das Ende der Suche + + self.search_finished.emit() + except Exception as e: + self.error_message = f"Fehler bei der Suche: {e}" + + + + + def suche_auf_haefele(self): + # URL für die Suche generieren + search_url = 'https://www.haefele.de/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "inputSearchTerm"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "inputSearchTerm") + search_box.clear() + search_box.send_keys(self.search_term) + search_box.send_keys(Keys.RETURN) + + def suche_auf_brewes(self): + + # URL für die Suche generieren + search_url = 'https://www.brewes.de/catalogsearch/result?q=' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "search"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "search") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + search_box.send_keys(Keys.RETURN) + + def suche_auf_conrad(self): + # WebDriver initialisieren + + + # Such-URL generieren + search_url = f'https://www.conrad.de/search.html?search={self.search_term}' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "header-search"))) + + # Suchbegriff eingeben + search_box = self.driver.find_element(By.ID, "header-search") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken + search_box.send_keys(Keys.RETURN) + + def suche_auf_contorion(self): + # Such-URL generieren + search_url = f'https://www.contorion.de/suche?q={self.search_term}' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "search-input"))) + + # Suchbegriff eingeben + search_box = self.driver.find_element(By.ID, "search-input") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken + search_box.send_keys(Keys.RETURN) + + def suche_auf_reichelt(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + + # Such-URL generieren + search_url = f'https://www.reichelt.de/index.html?ACTION=446&LA=446&nbc=1&SEARCH={self.search_term}' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 60).until(EC.presence_of_element_located((By.ID, "searchbutton"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "quicksearch_new") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Formular abschicken + search_button = self.driver.find_element(By.ID, "searchbutton") + search_button.click() + + def suche_auf_kosatec(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # Such-URL generieren + search_url = f'https://www.kosatec.de/suche?query={self.search_term}' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "input[name='search']"))) + + # Suchbegriff eingeben + search_box = self.driver.find_element(By.CSS_SELECTOR, "input[name='search']") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken + search_box.send_keys(Keys.RETURN) + + def suche_auf_hornbach(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.hornbach.de/s/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.NAME, "global_search"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.NAME, "global_search") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + search_box.send_keys(Keys.RETURN) + + def suche_auf_gastroteileshop(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = f'https://www.gastroteileshop.de/?s={self.search_term}' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + + # Warten, bis das Suchfeld sichtbar ist + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "search-input"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.CLASS_NAME, "search-input") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + search_box.send_keys(Keys.RETURN) + + def suche_auf_tiroled(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.tiroled.de/de/search' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.NAME, "search"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.NAME, "search") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + search_box.send_keys(Keys.RETURN) + + def suche_auf_megabad(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.megabad.com/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "search-bar-input"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "search-bar-input") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + search_box.send_keys(Keys.RETURN) + + def suche_auf_ips_shop(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.ips-kts.com/de/suche?query=' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.NAME, "query"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.NAME, "query") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + search_box.send_keys(Keys.RETURN) + + def suche_auf_delker(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.delker2business.com/nw2017/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.NAME, "query"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.NAME, "query") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten + search_box.send_keys(Keys.RETURN) + + def suche_auf_knauss(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.knauss.info/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.NAME, "sSearch"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.NAME, "sSearch") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten + search_box.send_keys(Keys.RETURN) + + def suche_auf_schildershop24(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.schildershop24.de/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "search-query-stichwort_neu"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "search-query-stichwort_neu") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten + search_box.send_keys(Keys.RETURN) + + def suche_auf_esmeyer(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.esmeyer-shop.de/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.NAME, "search"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.NAME, "search") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten + search_box.send_keys(Keys.RETURN) + + def suche_auf_papstar(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.papstar-shop.de/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "search"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "search") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten + search_box.send_keys(Keys.RETURN) + + def suche_auf_lusini(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.lusini.de/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "search-input"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "search-input") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten + search_box.send_keys(Keys.RETURN) + + def suche_auf_hygi(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.hygi.de/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "qbox"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "qbox") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten + search_box.send_keys(Keys.RETURN) + + def suche_auf_schafferer(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.schafferer.de/gastro/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "quicksearch-input"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "quicksearch-input") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten + search_box.send_keys(Keys.RETURN) + + def suche_auf_gastronomie_kaufhaus(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.gastronomie-kaufhaus.de/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "searchParam"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "searchParam") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten (falls notwendig) + search_box.send_keys(Keys.RETURN) + + def suche_auf_boettcher(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.bueromarkt-ag.de/' # Bitte die tatsächliche URL einsetzen + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "autocomplete-0-input"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "autocomplete-0-input") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten (falls notwendig) + search_box.send_keys(Keys.RETURN) + + def suche_auf_bueroshop24(self): + # WebDriver initialisieren + self.driver = webdriver.Edge() + + # URL für die Suche generieren + search_url = 'https://www.bueroshop24.de/' + + # Webseite aufrufen und auf das vollständige Laden warten + self.driver.get(search_url) + WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "searchTerm"))) + + # Suchbegriff eingeben und Suche starten + search_box = self.driver.find_element(By.ID, "searchTerm") + search_box.clear() # Falls vorheriger Text vorhanden ist + search_box.send_keys(self.search_term) + + # Enter-Taste drücken, um die Suche zu starten (falls notwendig) + search_box.send_keys(Keys.RETURN) + +class WebseitenSucheApp(QWidget): + def __init__(self): + super().__init__() + + self.selected_webpages = { + "Reichelt": False, + "Conrad": False, + "Kosatec": False, + "Hornbach": False, + "Contorion": False, + "Gastro Teile Shop": False, + "TiroLED": False, + "Megabad": False, + "IPS": False, + "Brewes": False, + "Delker": False, + "Knauss": False, + "Schildershop24": False, + "Häfele": False, + "Esmeyer": False, + "Papstar": False, + "Lusini": False, + "Hygi": False, + "Schafferer": False, + "Gastronomie Kaufhaus": False, + "Böttcher": False, + "Büroshop24": False + } + + self.search_term = "" + self.driver = None + + self.init_ui() + + def init_ui(self): + layout = QVBoxLayout() + + # Webseiten-Auswahl + layout.addWidget(QLabel("Wählen Sie die Webseiten aus:")) + for webpage, checked in self.selected_webpages.items(): + checkbox = QCheckBox(webpage) + checkbox.setChecked(checked) + checkbox.stateChanged.connect(lambda state, page=webpage: self.update_webpage_state(page, state)) + layout.addWidget(checkbox) + + # Suchbegriff-Eingabe + search_label = QLabel("Geben Sie den Suchbegriff ein:") + layout.addWidget(search_label) + + search_input = QLineEdit(self) + search_input.textChanged.connect(self.update_search_term) + layout.addWidget(search_input) + + # Suchen-Button + search_button = QPushButton("Suche starten", self) + search_button.clicked.connect(self.start_search) + layout.addWidget(search_button) + + # Neues Suche-Button + new_search_button = QPushButton("Neue Suche starten", self) + new_search_button.clicked.connect(self.new_search) + layout.addWidget(new_search_button) + + self.setLayout(layout) + self.setGeometry(300, 300, 400, 200) + self.setWindowTitle('Webseiten Suche App') + self.show() + + def update_webpage_state(self, webpage, state): + self.selected_webpages[webpage] = state == 2 # 2 entspricht dem Zustand "ausgewählt" + + def update_search_term(self, text): + self.search_term = text + + def start_search(self): + selected_webpages = [webpage for webpage, selected in self.selected_webpages.items() if selected] + + if not selected_webpages: + QMessageBox.warning(self, "Fehler", "Bitte wählen Sie mindestens eine Webseite aus.") + return + + if not self.search_term: + QMessageBox.warning(self, "Fehler", "Bitte geben Sie einen Suchbegriff ein.") + return + + # Starte den Such-Thread + self.search_thread = SearchThread(selected_webpages, self.search_term) + self.search_thread.search_finished.connect(self.search_finished) + self.search_thread.start() + + def search_finished(self): + self.search_thread.quit() + self.search_thread.wait() + if hasattr(self.search_thread, 'error_message') and self.search_thread.error_message: + QMessageBox.critical(None, "Fehler", self.search_thread.error_message) + else: + QMessageBox.information(None, "Suche abgeschlossen", "Die Suche wurde erfolgreich abgeschlossen.") + + + + def new_search(self): + self.close_driver() + print("Neue Suche starten") + +if __name__ == '__main__': + app = QApplication(sys.argv) + window = WebseitenSucheApp() + sys.exit(app.exec_()) diff --git a/esmeyer.py b/esmeyer.py deleted file mode 100644 index 2d86b08..0000000 --- a/esmeyer.py +++ /dev/null @@ -1,54 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_esmeyer(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.esmeyer-shop.de/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "search"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.NAME, "search") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten - search_box.send_keys(Keys.RETURN) - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_essmeyer = input("Nach welchen Produkten suchen Sie auf Esmeyer? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_essmeyer(suchbegriff_essmeyer) diff --git a/gastrokaufhaus.py b/gastrokaufhaus.py deleted file mode 100644 index 4893a9d..0000000 --- a/gastrokaufhaus.py +++ /dev/null @@ -1,53 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_gastronomie_kaufhaus(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.gastronomie-kaufhaus.de/' # Bitte die tatsächliche URL einsetzen - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "searchParam"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "searchParam") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten (falls notwendig) - search_box.send_keys(Keys.RETURN) - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_gastronomie_kaufhaus = input("Nach welchen Produkten suchen Sie auf gastronomie-kaufhaus.de? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_gastronomie_kaufhaus(suchbegriff_gastronomie_kaufhaus) diff --git a/gastroteileshop.py b/gastroteileshop.py deleted file mode 100644 index 6d9d4d0..0000000 --- a/gastroteileshop.py +++ /dev/null @@ -1,59 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import atexit - -def cleanup(driver): - print("Das Programm wird beendet. Der WebDriver wird geschlossen.") - driver.quit() - -def suche_auf_gastroteileshop(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # Registrieren der Cleanup-Funktion - atexit.register(cleanup, driver) - - # URL für die Suche generieren - search_url = f'https://www.gastroteileshop.de/?s={suchbegriff}' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - - # Warten, bis das Suchfeld sichtbar ist - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "search-input"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.CLASS_NAME, "search-input") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - search_box.send_keys(Keys.RETURN) - - # Auf das Laden der Suchergebnisse warten (falls erforderlich) - # Hier könnte man zum Beispiel warten, bis ein bestimmtes Element auf der Ergebnisseite erscheint. - - # 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_='product-title')] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links[:anzahl_ergebnisse]: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Endlosschleife, um den Browser offen zu halten - input("Enter zum schließen des fensters") -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_gastroteileshop = input("Welchen Artikel suchst du beim Gastroteileshop? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_gastroteileshop(suchbegriff_gastroteileshop) diff --git a/haefele.py b/haefele.py deleted file mode 100644 index d90ec7c..0000000 --- a/haefele.py +++ /dev/null @@ -1,55 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_haefele(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.haefele.de/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "inputSearchTerm"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "inputSearchTerm") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten - search_box.send_keys(Keys.RETURN) - - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_haefele = input("Nach welchen Produkten suchen Sie auf Häfele? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_haefele(suchbegriff_haefele) diff --git a/hornbach.py b/hornbach.py deleted file mode 100644 index d4c0fb9..0000000 --- a/hornbach.py +++ /dev/null @@ -1,53 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_hornbach(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.hornbach.de/s/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "global_search"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.NAME, "global_search") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - search_box.send_keys(Keys.RETURN) - - # Auf das Laden der Suchergebnisse warten - #WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".search-result-item"))) - - # 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.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_hornbach = input("Welchen Artikel suchst du bei Hornbach? ") - - # Suche nach dem Artikel und erhalte gefundene Links - gefundene_links_hornbach = suche_auf_hornbach(suchbegriff_hornbach) diff --git a/hygi.py b/hygi.py deleted file mode 100644 index fd17a16..0000000 --- a/hygi.py +++ /dev/null @@ -1,53 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_hygi(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.hygi.de/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "qbox"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "qbox") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten - search_box.send_keys(Keys.RETURN) - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_hygi = input("Nach welchen Produkten suchen Sie auf Hygi.de? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_hygi(suchbegriff_hygi) diff --git a/ips.py b/ips.py deleted file mode 100644 index a6ae00d..0000000 --- a/ips.py +++ /dev/null @@ -1,53 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_ips_shop(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.ips-kts.com/de/suche?query=' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "query"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.NAME, "query") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - search_box.send_keys(Keys.RETURN) - - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_ips_shop = input("Welchen Artikel suchst du bei IPS Shop? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_ips_shop(suchbegriff_ips_shop) diff --git a/knauss.py b/knauss.py deleted file mode 100644 index d112962..0000000 --- a/knauss.py +++ /dev/null @@ -1,55 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_knauss(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.knauss.info/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "sSearch"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.NAME, "sSearch") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten - search_box.send_keys(Keys.RETURN) - - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_knauss = input("Nach welchem Produkt suchen Sie auf Knauss? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_knauss(suchbegriff_knauss) diff --git a/kosatec.py b/kosatec.py deleted file mode 100644 index cefcf04..0000000 --- a/kosatec.py +++ /dev/null @@ -1,55 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.keys import Keys -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_kosatec(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # Such-URL generieren - search_url = f'https://www.kosatec.de/suche?query={suchbegriff}' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "input[name='search']"))) - - # Suchbegriff eingeben - search_box = driver.find_element(By.CSS_SELECTOR, "input[name='search']") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken - search_box.send_keys(Keys.RETURN) - - # Auf das Laden der Suchergebnisse warten (falls erforderlich) - # Hier könnte man zum Beispiel warten, bis ein bestimmtes Element auf der Ergebnisseite erscheint. - - # 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_='product-title')] - - # 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_kosatec = input("Welchen Artikel suchst du bei Kosatec? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_kosatec(suchbegriff_kosatec) diff --git a/lusini.py b/lusini.py deleted file mode 100644 index b052058..0000000 --- a/lusini.py +++ /dev/null @@ -1,54 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_lusini(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.lusini.de/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "search-input"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "search-input") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten - search_box.send_keys(Keys.RETURN) - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_lusini = input("Nach welchen Produkten suchen Sie auf Lusini? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_lusini(suchbegriff_lusini) diff --git a/main.py b/main.py deleted file mode 100644 index 01a5f3e..0000000 --- a/main.py +++ /dev/null @@ -1,178 +0,0 @@ -import sys -from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QCheckBox, QMessageBox -from concurrent.futures import ThreadPoolExecutor -from hornbach import suche_auf_hornbach -from reichelt import suche_auf_reichelt -from kosatec import suche_auf_kosatec -from conrad import suche_auf_conrad -from contorion import suche_auf_contorion -from gastroteileshop import suche_auf_gastroteileshop -from tiroled import suche_auf_tiroled -from megabad import suche_auf_megabad -from ips import suche_auf_ips_shop -from brewes import suche_auf_brewes -from delker import suche_auf_delker -from knauss import suche_auf_knauss -from schildershop24 import suche_auf_schildershop24 -from haefele import suche_auf_haefele -from esmeyer import suche_auf_esmeyer -from papstar import suche_auf_papstar -from lusini import suche_auf_lusini -from hygi import suche_auf_hygi -from schafferer import suche_auf_schafferer -from gastrokaufhaus import suche_auf_gastronomie_kaufhaus -from boettcher import suche_auf_boettcher -from bueroshop import suche_auf_bueroshop24 - -class WebseitenSucheApp(QWidget): - def __init__(self): - super().__init__() - - self.selected_webpages = { - "Reichelt": False, - "Conrad": False, - "Kosatec": False, - "Hornbach": False, - "Contorion": False, - "Gastro Teile Shop": False, - "TiroLED": False, - "Megabad": False, - "IPS": False, - "Brewes": False, - "Delker": False, - "Knauss": False, - "Schildershop24": False, - "Häfele": False, - "Esmeyer": False, - "Papstar": False, - "Lusini": False, - "Hygi": False, - "Schafferer": False, - "Gastronomie Kaufhaus": False, - "Böttcher": False, - "Büroshop24": False - } - - self.search_term = "" - - self.init_ui() - - def init_ui(self): - layout = QVBoxLayout() - - # Webseiten-Auswahl - layout.addWidget(QLabel("Wählen Sie die Webseiten aus:")) - for webpage, checked in self.selected_webpages.items(): - checkbox = QCheckBox(webpage) - checkbox.setChecked(checked) - checkbox.stateChanged.connect(lambda state, page=webpage: self.update_webpage_state(page, state)) - layout.addWidget(checkbox) - - # Suchbegriff-Eingabe - search_label = QLabel("Geben Sie den Suchbegriff ein:") - layout.addWidget(search_label) - - search_input = QLineEdit(self) - search_input.textChanged.connect(self.update_search_term) - layout.addWidget(search_input) - - # Suchen-Button - search_button = QPushButton("Suche starten", self) - search_button.clicked.connect(self.start_search) - layout.addWidget(search_button) - - # Neues Suche-Button - new_search_button = QPushButton("Neue Suche starten", self) - new_search_button.clicked.connect(self.new_search) - layout.addWidget(new_search_button) - - self.setLayout(layout) - self.setGeometry(300, 300, 400, 200) - self.setWindowTitle('Webseiten Suche App') - self.show() - - def update_webpage_state(self, webpage, state): - self.selected_webpages[webpage] = state == 2 # 2 entspricht dem Zustand "ausgewählt" - - def update_search_term(self, text): - self.search_term = text - - def start_search(self): - selected_webpages = [webpage for webpage, selected in self.selected_webpages.items() if selected] - - if not selected_webpages: - QMessageBox.warning(self, "Fehler", "Bitte wählen Sie mindestens eine Webseite aus.") - return - - if not self.search_term: - QMessageBox.warning(self, "Fehler", "Bitte geben Sie einen Suchbegriff ein.") - return - - try: - with ThreadPoolExecutor() as executor: - futures = [] - - for webseite in selected_webpages: - # Fügen Sie hier Ihre anderen Suchfunktionen hinzu - - if webseite == "Reichelt": - futures.append(executor.submit(suche_auf_reichelt, self.search_term)) - elif webseite == "Conrad": - futures.append(executor.submit(suche_auf_conrad, self.search_term)) - elif webseite == "Kosatec": - futures.append(executor.submit(suche_auf_kosatec, self.search_term)) - elif webseite == "Hornbach": - futures.append(executor.submit(suche_auf_hornbach, self.search_term)) - elif webseite =="Contorion": - futures.append(executor.submit(suche_auf_contorion, self.search_term)) - elif webseite == "Gastro Teile Shop": - futures.append(executor.submit(suche_auf_gastroteileshop, self.search_term)) - elif webseite == "TiroLED": - futures.append(executor.submit(suche_auf_tiroled, self.search_term)) - elif webseite == "Megabad": - futures.append(executor.submit(suche_auf_megabad, self.search_term)) - elif webseite == "IPS": - futures.append(executor.submit(suche_auf_ips_shop, self.search_term)) - elif webseite == "Brewes": - futures.append(executor.submit(suche_auf_brewes, self.search_term)) - elif webseite == "Delker": - futures.appen(executor.submit(suche_auf_delker, self.search_term)) - elif webseite == "Knauss": - futures.append(executor.submit(suche_auf_knauss, self.search_term)) - elif webseite == "Schildershop24": - futures.append(executor.submit(suche_auf_schildershop24, self.search_term)) - elif webseite == "Häfele": - futures.append(executor.submit(suche_auf_haefele, self.search_term)) - elif webseite == "Esmeyer": - futures.append(executor.submit(suche_auf_esmeyer, self.search_term)) - elif webseite == "Papstar": - futures.append(executor.submit(suche_auf_papstar, self.search_term)) - elif webseite == "Lusini": - futures.append(executor.submit(suche_auf_lusini, self.search_term)) - elif webseite == "Hygi": - futures.append(executor.submit(suche_auf_hygi, self.search_term)) - elif webseite == "Schafferer": - futures.append(executor.submit(suche_auf_schafferer, self.search_term)) - elif webseite == "Gastronomie Kaufhaus": - futures.append(executor.submit(suche_auf_gastronomie_kaufhaus, self.search_term)) - elif webseite == "Böttcher": - futures.append(executor.submit(suche_auf_boettcher, self.search_term)) - elif webseite == "Büroshop24": - futures.append(executor.submit(suche_auf_bueroshop24, self.search_term)) - - for future in futures: - future.result() # Warte auf das Ende der Suche - - QMessageBox.information(self, "Suche abgeschlossen", "Die Suche wurde erfolgreich abgeschlossen.") - except Exception as e: - QMessageBox.critical(self, "Fehler", f"Fehler bei der Suche: {e}") - - def new_search(self): - # Implementieren Sie hier die Logik für eine neue Suche - # Das könnte bedeuten, dass Sie die GUI zurücksetzen oder andere Vorbereitungen treffen - print("Neue Suche starten") - -if __name__ == '__main__': - app = QApplication(sys.argv) - window = WebseitenSucheApp() - sys.exit(app.exec_()) diff --git a/megabad.py b/megabad.py deleted file mode 100644 index 1cc2914..0000000 --- a/megabad.py +++ /dev/null @@ -1,53 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_megabad(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.megabad.com/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "search-bar-input"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "search-bar-input") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - search_box.send_keys(Keys.RETURN) - - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_megabad = input("Welchen Artikel suchst du bei Megabad? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_megabad(suchbegriff_megabad) diff --git a/papstar.py b/papstar.py deleted file mode 100644 index 73e1a6b..0000000 --- a/papstar.py +++ /dev/null @@ -1,54 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_papstar(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.papstar-shop.de/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "search"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "search") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten - search_box.send_keys(Keys.RETURN) - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_papstar = input("Nach welchen Produkten suchen Sie auf Papstar? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_papstar(suchbegriff_papstar) diff --git a/reichelt.py b/reichelt.py deleted file mode 100644 index 0e483b2..0000000 --- a/reichelt.py +++ /dev/null @@ -1,58 +0,0 @@ -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) diff --git a/schafferer.py b/schafferer.py deleted file mode 100644 index 5d48e3d..0000000 --- a/schafferer.py +++ /dev/null @@ -1,53 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_schafferer(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.schafferer.de/gastro/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "quicksearch-input"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "quicksearch-input") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten - search_box.send_keys(Keys.RETURN) - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_schafferer = input("Nach welchen Produkten suchen Sie auf Schafferer.de? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_schafferer(suchbegriff_schafferer) diff --git a/schildershop24.py b/schildershop24.py deleted file mode 100644 index 48305a3..0000000 --- a/schildershop24.py +++ /dev/null @@ -1,54 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_schildershop24(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.schildershop24.de/' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "search-query-stichwort_neu"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.ID, "search-query-stichwort_neu") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken, um die Suche zu starten - search_box.send_keys(Keys.RETURN) - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_schildershop24 = input("Nach welchen Schildern suchen Sie auf Schildershop24? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_schildershop24(suchbegriff_schildershop24) diff --git a/tiroled.py b/tiroled.py deleted file mode 100644 index 446e68c..0000000 --- a/tiroled.py +++ /dev/null @@ -1,53 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from bs4 import BeautifulSoup -import time - -def suche_auf_tiroled(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # URL für die Suche generieren - search_url = 'https://www.tiroled.de/de/search' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "search"))) - - # Suchbegriff eingeben und Suche starten - search_box = driver.find_element(By.NAME, "search") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - search_box.send_keys(Keys.RETURN) - - - - # 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_='product-title')][:anzahl_ergebnisse] - - # Ausgabe der gefundenen Links - if gefundene_links: - print("Gefundene Links:") - for link in gefundene_links: - print(link) - else: - print("Keine Ergebnisse gefunden.") - - # Hier können Sie den Browser offen lassen, damit Sie die Ergebnisse sehen können. - input("Drücken Sie Enter, um den Browser zu schließen...") - - # WebDriver schließen - driver.quit() - -if __name__ == "__main__": - # Benutzereingabe - suchbegriff_tiroled = input("Welchen Artikel suchst du bei Tiroled? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_tiroled(suchbegriff_tiroled) diff --git a/voelkner.py b/voelkner.py deleted file mode 100644 index 7849d31..0000000 --- a/voelkner.py +++ /dev/null @@ -1,59 +0,0 @@ -from selenium import webdriver -from selenium.webdriver.common.keys import Keys -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_voelkner(suchbegriff, anzahl_ergebnisse=5): - # WebDriver initialisieren - driver = webdriver.Edge() - - # Such-URL generieren - search_url = f'https://www.voelkner.de/search/search.html?keywords={suchbegriff}' - - # Webseite aufrufen und auf das vollständige Laden warten - driver.get(search_url) - WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "js_keywords"))) - - # Suchbegriff eingeben - search_box = driver.find_element(By.ID, "js_keywords") - search_box.clear() # Falls vorheriger Text vorhanden ist - search_box.send_keys(suchbegriff) - - # Enter-Taste drücken (optional) - # search_box.send_keys(Keys.RETURN) - - # Suchbutton klicken - search_button = driver.find_element(By.CLASS_NAME, "js_submit_search") - search_button.click() - - # Auf das Laden der Suchergebnisse warten (falls erforderlich) - # Hier könnte man zum Beispiel warten, bis ein bestimmtes Element auf der Ergebnisseite erscheint. - - # 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_='product-title')] - - # 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_voelkner = input("Welchen Artikel suchst du bei Völkner? ") - - # Suche nach dem Artikel und erhalte gefundene Links - suche_auf_voelkner(suchbegriff_voelkner)