From 80721fb54d711e834674acb8279ce92cc8c95fff Mon Sep 17 00:00:00 2001 From: RochoElLocho Date: Wed, 29 Nov 2023 16:23:20 +0100 Subject: [PATCH] =?UTF-8?q?Neue=20Webseiten=20hinzugef=C3=BCgt=20(Arbeitsp?= =?UTF-8?q?latzmatten-Profi,=20Skiltex,=20Franz-Mensch,=20ARA,=20=20VKF-Fr?= =?UTF-8?q?enzel,=20B=C3=B6rner,=20GGM-Gastro,=20Label-Ident,=20Transpak,?= =?UTF-8?q?=20=20PML,=20DM-Folien)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- einkauf_suche.py | 173 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 165 insertions(+), 8 deletions(-) diff --git a/einkauf_suche.py b/einkauf_suche.py index aa89395..22fa350 100644 --- a/einkauf_suche.py +++ b/einkauf_suche.py @@ -87,14 +87,37 @@ class SearchThread(QThread): self.suche_auf_schafferer() elif webseite == "Gastronomie Kaufhaus: Gastrobedarf": self.suche_auf_gastronomie_kaufhaus() + elif webseite == "Arbeitsplatzmatten-profi": + self.suche_auf_arbeitsplatzmattenprofi() + elif webseite == "Skiltex: Aufsteller- Plakathalter- Acryl, Aschenbecher, Büroschilder, Doppelseitiger Rahmen, Digital Signage": + self.suche_auf_skiltex() + elif webseite == "Franz-Mensch: Handschuhe, Schutzkleidung, Reinigung & Hygiene, Gastronomiebedarf, Medizin- & Pflegebedarf": + self.suche_auf_franzmensch() + elif webseite == "Frank-Flechtwaren: Ostern, Garten, Deko, Wohnen, Textilien, Korbwaren, Kollektion": + self.suche_auf_frankflechtwaren() + elif webseite == "ARA: Arbeitskleidung, Augenschutz, Atemschutz, Gehörschutz, Kopfschutz, Erste Hilfe, Hautschutz": + self.suche_auf_ara_arbeitsschutz() + elif webseite == "VKF-Renzel: Prospekthalter & Warenträger, Werbeaufsteller, Rahmen & Hüllen, Regalordnung, Außenwerbung": + self.suche_auf_vkf_renzel() + elif webseite == "Börner: Obst- und Gemüsehobel, Reiben und Schneider, Schäler, Küchenhelfer": + self.suche_auf_boerner() + elif webseite == "GGM-Gastro: Kochgeräte, Edelstahlmöbel, Kühlung, Kombidämpfer, Küchengeräte, Töpfe & Pfannen, Lüftung": + self.suche_auf_ggmgastro() elif webseite == "Böttcher: Bürobedarf, Papiere, Folien, Etiketten, Druckerpatronen, Büromöbel & Stahlschränke": self.suche_auf_boettcher() elif webseite == "Büroshop24: Papier, Tinte & Toner, Ordner & Mappen, Schreibwaren, Versand, Schulbedarf, Bürobedarf": self.suche_auf_bueroshop24() elif webseite == "Buchhandlung am Markt: Bücher": self.suche_buchhandlung_am_markt() - elif webseite == "Transpak": + elif webseite == "Label-Ident: Etikettendrucker, Software & Zubehör, Thermotransfer-Farbbänder, Etiketten auf Rolle": + self.suche_auf_labelident() + elif webseite == "Transpak: Kartonage mit FL Logo, Stretchfolie, Packband, Versandverpackungen,Polstern, Folien und Beutel": self.suche_auf_transpak() + elif webseite == "PML: Kassenrollen, Büro- und Funktionspapiere": + self.suche_auf_pml() + elif webseite == "DM-Folien: Pressengarn": + self.suche_auf_dmfolien() + except Exception as e: print(f"Fehler bei der Suche auf {webseite}: {e}") @@ -186,7 +209,6 @@ class SearchThread(QThread): self.driver.get(search_url) WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "input[name='search']"))) - def suche_auf_hornbach(self): # URL für die Suche generieren @@ -362,6 +384,84 @@ class SearchThread(QThread): # Enter-Taste drücken, um die Suche zu starten (falls notwendig) search_box.send_keys(Keys.RETURN) + def suche_auf_arbeitsplatzmattenprofi(self): + + + # URL für die Suche generieren + search_url = f'https://arbeitsplatzmatten-profi.com/?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.ID, "search"))) + + def suche_auf_skiltex(self): + + search_url = 'https://www.skiltex.de/shop/frontpage.html' # Ersetzen Sie dies durch die tatsächliche URL für Skiltex + + # 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.CLASS_NAME, "SearchField_SearchPage"))) + + cookie_button = self.driver.find_element(By.CLASS_NAME, "coi-banner__accept") + cookie_button.click() + + # Auf die Suchleiste klicken + search_box = self.driver.find_element(By.CLASS_NAME, "SearchField_SearchPage") + search_box.click() + + # Suchbegriff eingeben und Suche starten + search_box.clear() + search_box.send_keys(self.search_term) + search_box.send_keys(Keys.RETURN) + + def suche_auf_franzmensch(self): + # URL für die Suche generieren + search_url = f'https://www.franz-mensch.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.ID, "search"))) + + def suche_auf_frankflechtwaren(self): + # URL für die Suche generieren + search_url = f'https://www.frank-flechtwaren.de/suchergebnisse/?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.ID, "search"))) + + def suche_auf_ara_arbeitsschutz(self): + # URL für die Suche generieren + search_url = f'https://ara-arbeitsschutz.de/navi.php?qs={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_vkf_renzel(self): + # URL für die Suche generieren + search_url = f'https://www.vkf-renzel.de/index.php?lang=0&cl=rasearch&searchparam={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_boerner(self): + # URL für die Suche generieren + search_url = f'https://www.boerner.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.ID, "search"))) + + def suche_auf_ggmgastro(self): + # URL für die Suche generieren + search_url = f'https://www.ggmgastro.com/de-de-eur/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"))) + def suche_auf_boettcher(self): # URL für die Suche generieren @@ -396,6 +496,14 @@ class SearchThread(QThread): self.driver.get(search_url) WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "mobile-search"))) + def suche_auf_labelident(self): + # URL für die Suche generieren + search_url = f'https://www.labelident.com/catalogsearch/result/?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"))) + def suche_auf_transpak(self): # URL für die Suche generieren search_url = f'https://www.shop.transpak.de/search?sSearch={self.search_term}' @@ -413,6 +521,23 @@ class SearchThread(QThread): except Exception as e: print(f"Fehler beim Akzeptieren von Cookies: {e}") + def suche_auf_pml(self): + # URL für die Suche generieren + search_url = f'https://www.pml-papiere.de/#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.ID, "search"))) + + def suche_auf_dmfolien(self): + # URL für die Suche generieren + search_url = f'https://www.dm-folien.com/shop/search?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.ID, "search"))) + + categories = ["IT/EDV", "Haustechnik","Küche", "Verwaltung", "Transporte"] webpages = [ ["Reichelt: Technikbedarf", "Kosatec: Elektro Artikel", "Conrad: Technik Marktplatz"], @@ -435,11 +560,22 @@ webpages = [ "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"], + "Gastronomie Kaufhaus: Gastrobedarf", + "Arbeitsplatzmatten-profi: Anti-Rutschmatten,Schutz- & Sicherheitsmatten,Schmutzfangmatten,Läufer,Kabelbrücken", + "Skiltex: Aufsteller- Plakathalter- Acryl, Aschenbecher, Büroschilder, Doppelseitiger Rahmen, Digital Signage", + "Franz-Mensch: Handschuhe, Schutzkleidung, Reinigung & Hygiene, Gastronomiebedarf, Medizin- & Pflegebedarf", + "Frank-Flechtwaren: Ostern, Garten, Deko, Wohnen, Textilien, Korbwaren, Kollektion", + "ARA: Arbeitskleidung, Augenschutz, Atemschutz, Gehörschutz, Kopfschutz, Erste Hilfe, Hautschutz", + "VKF-Renzel: Prospekthalter & Warenträger, Werbeaufsteller, Rahmen & Hüllen, Regalordnung, Außenwerbung", + "Börner: Obst- und Gemüsehobel, Reiben und Schneider, Schäler, Küchenhelfer", + "GGM-Gastro: Kochgeräte, Edelstahlmöbel, Kühlung, Kombidämpfer, Küchengeräte, Töpfe & Pfannen, Lüftung"], ["Böttcher: Bürobedarf, Papiere, Folien, Etiketten, Druckerpatronen, Büromöbel & Stahlschränke", "Buchhandlung am Markt: Bücher", - "Büroshop24: Papier, Tinte & Toner, Ordner & Mappen, Schreibwaren, Versand, Schulbedarf, Bürobedarf"], - ["Transpak"] + "Büroshop24: Papier, Tinte & Toner, Ordner & Mappen, Schreibwaren, Versand, Schulbedarf, Bürobedarf", + "Label-Ident: Etikettendrucker, Software & Zubehör, Thermotransfer-Farbbänder, Etiketten auf Rolle"], + ["Transpak: Kartonage mit FL Logo, Stretchfolie, Packband, Versandverpackungen,Polstern, Folien und Beutel", + "PML: Kassenrollen, Büro- und Funktionspapiere", + "DM-Folien: Pressengarn"] ] class WebseitenSucheApp(QWidget): @@ -495,7 +631,7 @@ class WebseitenSucheApp(QWidget): if any(green_webpage in webpage for green_webpage in green_webpages): checkbox.setStyleSheet("color: green;") - yellow_webpages = [] + yellow_webpages = ["Arbeitsplatzmatten-profi","Skiltex","Franz-Mensch", "Frank-Flechtwaren", "ARA", "VKF-Renzel", "Börner", "GGM-Gastro"] if any(yellow_webpage in webpage for yellow_webpage in yellow_webpages): checkbox.setStyleSheet("color: yellow;") @@ -533,7 +669,27 @@ class WebseitenSucheApp(QWidget): checkbox.setChecked(self.selected_webpages[webpage]) checkbox.stateChanged.connect(self.make_checkbox_callback(webpage)) - green_webpages = [] + green_webpages = ["Böttcher", "Buchhandlung am Markt"] + if any(green_webpage in webpage for green_webpage in green_webpages): + checkbox.setStyleSheet("color: green;") + + yellow_webpages = ["Büroshop24", "Label-Ident"] + if any(yellow_webpage in webpage for yellow_webpage in yellow_webpages): + checkbox.setStyleSheet("color: yellow;") + + grid_layout.addWidget(checkbox, row+ 5, 2, 1, 2) + + category = "Transporte" + category_label = QLabel(category) + grid_layout.addWidget(category_label, 9, 2, 1, 2) + + # Add corresponding webpages in the second column + 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 = ["Transpak", "PML", "DM-Folien" ] if any(green_webpage in webpage for green_webpage in green_webpages): checkbox.setStyleSheet("color: green;") @@ -541,8 +697,9 @@ class WebseitenSucheApp(QWidget): if any(yellow_webpage in webpage for yellow_webpage in yellow_webpages): checkbox.setStyleSheet("color: yellow;") - grid_layout.addWidget(checkbox, row+ 5, 2, 1, 2) + grid_layout.addWidget(checkbox, row+ 10, 2, 1, 2) + ########################################################################################################################## layout.addLayout(grid_layout)