Code Optimierung
Überflüssigen Code entfernt. Neue Webseiten Hinzugefügt. (Tischwelten, Baubeschlagshop, Pacovis)
This commit is contained in:
parent
f742e406cd
commit
13ea049559
157
einkauf_suche.py
157
einkauf_suche.py
@ -57,6 +57,8 @@ class SearchThread(QThread):
|
||||
self.suche_auf_tiroled()
|
||||
elif webseite == "Megabad: Badarmaturen, Badkeramik, Badmöbel, Badewannen, Duschwannen, Duschkabine, Badheizkörper":
|
||||
self.suche_auf_megabad()
|
||||
elif webseite == "Baubeschlagshop: Beschläge, Rollen, installationsbedarf":
|
||||
self.suche_auf_baubeschlag()
|
||||
elif webseite == "IPS: Verbindungs- Befestigungs- Dichtungs- Schlauch-Technik, Gewindefittings, Klemmringverschraubungen, Rohre":
|
||||
self.suche_auf_ips_shop()
|
||||
elif webseite == "Brewes: Sicherheitsschilder, Verkehrszeichen, Absperrketten, Prüfplaketten, Lagerkennzeichnung":
|
||||
@ -73,10 +75,14 @@ class SearchThread(QThread):
|
||||
self.suche_auf_esmeyer()
|
||||
elif webseite == "Papstar: Bio-Einweggeschirr, Teller & Schalen, Becher & Gläser, Besteck, Fingerfood-Artikel, Servietten":
|
||||
self.suche_auf_papstar()
|
||||
elif webseite == "Pacovis: To Go Geschirr, Einweggeschirr Brasserie, Lebensmittelverarbeitung, Lebensmittelverpackungen":
|
||||
self.suche_auf_pacovis()
|
||||
elif webseite == "Lusini: Gastrobedarf":
|
||||
self.suche_auf_lusini()
|
||||
elif webseite == "Hygi: Reinigungsmittel, Pflegemittel & Waschmittel, Desinfektionsmittel, Besen,Müllsäcke & Haushaltswaren":
|
||||
self.suche_auf_hygi()
|
||||
elif webseite == "Tischwelt: Geschirr, Glas, Besteck, Buffet, Tischzubehör, Tischwäsche, Take Away, Geräte, Küchenbedarf, Möbel":
|
||||
self.suche_auf_tischwelt()
|
||||
elif webseite == "Schafferer: MARKEN, ESSEN & TRINKEN, WOHNEN & SCHENKEN, KOCHEN & GENIESSE, LUNCH, KINDER, THEMEN":
|
||||
self.suche_auf_schafferer()
|
||||
elif webseite == "Gastronomie Kaufhaus: Gastrobedarf":
|
||||
@ -174,34 +180,21 @@ class SearchThread(QThread):
|
||||
def suche_auf_kosatec(self):
|
||||
|
||||
# Such-URL generieren
|
||||
search_url = f'https://www.kosatec.de/suche?query={self.search_term}'
|
||||
search_url = f'https://shop.kosatec.de/search?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.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):
|
||||
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.hornbach.de/s/'
|
||||
search_url = f'https://www.hornbach.de/s/{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.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):
|
||||
|
||||
@ -222,112 +215,70 @@ class SearchThread(QThread):
|
||||
|
||||
def suche_auf_tiroled(self):
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.tiroled.de/de/search'
|
||||
search_url = f'https://www.tiroled.com/de/search?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.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):
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.megabad.com/'
|
||||
search_url = f'https://www.megabad.com/search/?query=sdyc/#/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-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_baubeschlag(self):
|
||||
# URL für die Suche generieren
|
||||
search_url = f'https://www.baubeschlagshop.de/fts.php?criteria={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, "searchcriteria")))
|
||||
|
||||
def suche_auf_ips_shop(self):
|
||||
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.ips-kts.com/de/suche?query='
|
||||
search_url = f'https://www.ips-kts.com/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.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):
|
||||
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.delker2business.com/nw2017/'
|
||||
search_url = f'https://www.delker2business.com/nwsearch/execute?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.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):
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.knauss.info/'
|
||||
search_url = f'https://knauss.info/dksearch?sSearch={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.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):
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.schildershop24.de/'
|
||||
search_url = f'https://www.schildershop24.de/?action=Query&-query.&query.stichwort=r{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-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):
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.esmeyer-shop.de/'
|
||||
search_url = f'https://www.esmeyer-shop.de/search?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.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):
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.papstar-shop.de/'
|
||||
@ -344,23 +295,23 @@ class SearchThread(QThread):
|
||||
# Enter-Taste drücken, um die Suche zu starten
|
||||
search_box.send_keys(Keys.RETURN)
|
||||
|
||||
def suche_auf_pacovis(self):
|
||||
# URL für die Suche generieren
|
||||
search_url = f'https://www.pacovis.com/de-de/suche/1/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, "search")))
|
||||
|
||||
def suche_auf_lusini(self):
|
||||
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.lusini.de/'
|
||||
search_url = f'https://www.lusini.com/de-de/search/#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 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):
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.hygi.de/'
|
||||
@ -377,23 +328,23 @@ class SearchThread(QThread):
|
||||
# Enter-Taste drücken, um die Suche zu starten
|
||||
search_box.send_keys(Keys.RETURN)
|
||||
|
||||
def suche_auf_tischwelt(self):
|
||||
# URL für die Suche generieren
|
||||
search_url = f'https://www.tischwelt.de/shop/Suche/?q={self.search_term}&search=Suchen'
|
||||
|
||||
# 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")))
|
||||
|
||||
def suche_auf_schafferer(self):
|
||||
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.schafferer.de/gastro/'
|
||||
search_url = f'https://www.schafferer.de/gastro/Artikel-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, "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):
|
||||
|
||||
# URL für die Suche generieren
|
||||
@ -439,20 +390,12 @@ class SearchThread(QThread):
|
||||
|
||||
def suche_buchhandlung_am_markt(self):
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://bam-mr.buchkatalog.de/'
|
||||
search_url = f'https://bam-mr.buchkatalog.de/search?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, "mobile-search")))
|
||||
|
||||
# Suchbegriff eingeben und Suche starten
|
||||
search_box = self.driver.find_element(By.ID, "mobile-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_transpak(self):
|
||||
# URL für die Suche generieren
|
||||
search_url = f'https://www.shop.transpak.de/search?sSearch={self.search_term}'
|
||||
@ -478,6 +421,7 @@ webpages = [
|
||||
"Gastroteile Shop: Geräte/Anwendung, Dichtungs- Elektro- Gas- Wasser-Komponenten, Werkzeuge",
|
||||
"TiroLED: LED Beleuchtung, Digital Signage",
|
||||
"Megabad: Badarmaturen, Badkeramik, Badmöbel, Badewannen, Duschwannen, Duschkabine, Badheizkörper",
|
||||
"Baubeschlagshop: Beschläge, Rollen, installationsbedarf",
|
||||
"IPS: Verbindungs- Befestigungs- Dichtungs- Schlauch-Technik, Gewindefittings, Klemmringverschraubungen, Rohre",
|
||||
"Brewes: Sicherheitsschilder, Verkehrszeichen, Absperrketten, Prüfplaketten, Lagerkennzeichnung",
|
||||
"Delker: Baugeräte,Beschlagsysteme und Sicherheitstechnik,Elektro- & Druckluftwerkzeuge,Betriebseinrichtungen",
|
||||
@ -486,8 +430,10 @@ webpages = [
|
||||
"Häfele: Griffe & Türdrücker, Möbelbeschläge & Wohnraumlösungen, Türbeschläge, Schiebebeschläge & Rollläden"],
|
||||
["Esmeyer: Besteck & Geschirr, alles für Getränke, gedeckter Tisch, Essen & Trinken",
|
||||
"Papstar: Bio-Einweggeschirr, Teller & Schalen, Becher & Gläser, Besteck, Fingerfood-Artikel, Servietten",
|
||||
"Pacovis: To Go Geschirr, Einweggeschirr Brasserie, Lebensmittelverarbeitung, Lebensmittelverpackungen",
|
||||
"Lusini: Gastrobedarf",
|
||||
"Hygi: Reinigungsmittel, Pflegemittel & Waschmittel, Desinfektionsmittel, Besen,Müllsäcke & Haushaltswaren ",
|
||||
"Hygi: Reinigungsmittel, Pflegemittel & Waschmittel, Desinfektionsmittel, Besen,Müllsäcke & Haushaltswaren",
|
||||
"Tischwelt: Geschirr, Glas, Besteck, Buffet, Tischzubehör, Tischwäsche, Take Away, Geräte, Küchenbedarf, Möbel",
|
||||
"Schafferer: MARKEN, ESSEN & TRINKEN, WOHNEN & SCHENKEN, KOCHEN & GENIESSE, LUNCH, KINDER, THEMEN",
|
||||
"Gastronomie Kaufhaus: Gastrobedarf"],
|
||||
["Böttcher: Bürobedarf, Papiere, Folien, Etiketten, Druckerpatronen, Büromöbel & Stahlschränke",
|
||||
@ -526,7 +472,7 @@ class WebseitenSucheApp(QWidget):
|
||||
checkbox.setChecked(self.selected_webpages[webpage])
|
||||
checkbox.stateChanged.connect(self.make_checkbox_callback(webpage))
|
||||
|
||||
green_webpages = ["Hornbach", "Contorion", "Gastroteile Shop", "TiroLED", "Megabad" ]
|
||||
green_webpages = ["Hornbach", "Contorion", "Gastroteile Shop", "TiroLED", "Megabad", "Baubeschlagshop" ]
|
||||
if any(green_webpage in webpage for green_webpage in green_webpages):
|
||||
checkbox.setStyleSheet("color: green;")
|
||||
|
||||
@ -538,14 +484,14 @@ class WebseitenSucheApp(QWidget):
|
||||
|
||||
category = "Küche"
|
||||
category_label = QLabel(category)
|
||||
grid_layout.addWidget(category_label, 12, 0, 1, 2)
|
||||
grid_layout.addWidget(category_label, 13, 0, 1, 2)
|
||||
|
||||
for row, webpage in enumerate(self.category_webpages_mapping[category]):
|
||||
checkbox = QCheckBox(webpage)
|
||||
checkbox.setChecked(self.selected_webpages[webpage])
|
||||
checkbox.stateChanged.connect(self.make_checkbox_callback(webpage))
|
||||
|
||||
green_webpages = ["Esmeyer", "Papstar", "Lusini", "Hygi", "Schafferer", "Gastronomie Kaufhaus"]
|
||||
green_webpages = ["Esmeyer", "Papstar", "Pacovis", "Lusini", "Hygi", "Tischwelt", "Schafferer", "Gastronomie Kaufhaus"]
|
||||
if any(green_webpage in webpage for green_webpage in green_webpages):
|
||||
checkbox.setStyleSheet("color: green;")
|
||||
|
||||
@ -553,7 +499,7 @@ class WebseitenSucheApp(QWidget):
|
||||
if any(yellow_webpage in webpage for yellow_webpage in yellow_webpages):
|
||||
checkbox.setStyleSheet("color: yellow;")
|
||||
|
||||
grid_layout.addWidget(checkbox, row + 13, 0, 1, 2)
|
||||
grid_layout.addWidget(checkbox, row + 14, 0, 1, 2)
|
||||
|
||||
# Add "IT/EDV" category in the second column#############################################################
|
||||
category = "IT/EDV"
|
||||
@ -657,8 +603,7 @@ class WebseitenSucheApp(QWidget):
|
||||
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.")
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user