Code Optimiert
This commit is contained in:
parent
8bff182bfc
commit
b9f28f7f75
187
einkauf_suche.py
187
einkauf_suche.py
@ -8,11 +8,7 @@ from selenium.webdriver.support.ui import WebDriverWait
|
||||
from selenium.webdriver.support import expected_conditions as EC
|
||||
from bs4 import BeautifulSoup
|
||||
import sqlite3
|
||||
|
||||
import sys
|
||||
import concurrent.futures
|
||||
|
||||
|
||||
|
||||
BLANK_PAGE_URL = ""
|
||||
|
||||
@ -36,115 +32,73 @@ class SearchThread(QThread):
|
||||
finally:
|
||||
self.search_finished.emit()
|
||||
|
||||
def search_for_website(self,webseite):
|
||||
search_functions = {
|
||||
"Reichelt": self.suche_auf_reichelt,
|
||||
"Conrad": self.suche_auf_conrad,
|
||||
"Kosatec": self.suche_auf_kosatec,
|
||||
"Hornbach": self.suche_auf_hornbach,
|
||||
"Contorion": self.suche_auf_contorion,
|
||||
"Gastroteile Shop": self.suche_auf_gastroteileshop,
|
||||
"TiroLED": self.suche_auf_tiroled,
|
||||
"Megabad": self.suche_auf_megabad,
|
||||
"Baubeschlagshop": self.suche_auf_baubeschlag,
|
||||
"IPS": self.suche_auf_ips_shop,
|
||||
"Brewes": self.suche_auf_brewes,
|
||||
"Delker": self.suche_auf_delker,
|
||||
"Knauss": self.suche_auf_knauss,
|
||||
"schildershop24": self.suche_auf_schildershop24,
|
||||
"Häfele": self.suche_auf_haefele,
|
||||
"Esmeyer": self.suche_auf_esmeyer,
|
||||
"Papstar": self.suche_auf_papstar,
|
||||
"Pacovis": self.suche_auf_pacovis,
|
||||
"Lusini": self.suche_auf_lusini,
|
||||
"Hygi": self.suche_auf_hygi,
|
||||
"Tischwelt": self.suche_auf_tischwelt,
|
||||
"Schafferer": self.suche_auf_schafferer,
|
||||
"Gastronomie Kaufhaus": self.suche_auf_gastronomie_kaufhaus,
|
||||
"Arbeitsplatzmatten Profi": self.suche_auf_arbeitsplatzmattenprofi,
|
||||
"Skiltex": self.suche_auf_skiltex,
|
||||
"Franz-Mensch": self.suche_auf_franzmensch,
|
||||
"Frank-Flechtwaren": self.suche_auf_frankflechtwaren,
|
||||
"ARA": self.suche_auf_ara_arbeitsschutz,
|
||||
"VKF-Renzel": self.suche_auf_vkf_renzel,
|
||||
"Börner": self.suche_auf_boerner,
|
||||
"GGM-Gastro": self.suche_auf_ggmgastro,
|
||||
"Böttcher": self.suche_auf_boettcher,
|
||||
"Büroshop24": self.suche_auf_bueroshop24,
|
||||
"Buchhandlung am Markt": self.suche_buchhandlung_am_markt,
|
||||
"Label-Ident": self.suche_auf_labelident,
|
||||
"Transpak": self.suche_auf_transpak,
|
||||
"PML": self.suche_auf_pml,
|
||||
"DM-Folien": self.suche_auf_dmfolien,
|
||||
"Proficleanshop": self.suche_auf_proficleanshop,
|
||||
"Siepmann": self.suche_auf_siepmann,
|
||||
"FK-Söhnchen": self.suche_auf_fksoehnchen,
|
||||
"Wahl-Agar": self.suche_auf_wahl_agrar,
|
||||
"TVV-Verpackungen": self.suche_auf_tvv,
|
||||
"Eierschachteln.de": self.suche_auf_eierschachteln,
|
||||
"KOX": self.suche_auf_kox,
|
||||
"Reinigungsberater.de": self.suche_auf_reinigungsberater,
|
||||
"VBS-Hobby": self.suche_auf_vbshobby,
|
||||
"Ökonomed": self.suche_auf_oekonomed,
|
||||
"Rossmann": self.suche_auf_rossmann,
|
||||
"Betzold": self.suche_auf_betzold,
|
||||
}
|
||||
|
||||
search_function = search_functions.get(webseite)
|
||||
|
||||
if search_function:
|
||||
search_function()
|
||||
else:
|
||||
print(f"Keine Suchfunktion für die Webseite '{webseite}' gefunden.")
|
||||
|
||||
|
||||
def start_search_on_webseite(self, webseite):
|
||||
try:
|
||||
self.driver.execute_script(f"window.open('{BLANK_PAGE_URL}', '_blank');")
|
||||
|
||||
self.driver.switch_to.window(self.driver.window_handles[-1])
|
||||
|
||||
if webseite == "Reichelt":
|
||||
self.suche_auf_reichelt()
|
||||
elif webseite == "Conrad":
|
||||
self.suche_auf_conrad()
|
||||
elif webseite == "Kosatec":
|
||||
self.suche_auf_kosatec()
|
||||
elif webseite == "Hornbach":
|
||||
self.suche_auf_hornbach()
|
||||
elif webseite =="Contorion":
|
||||
self.suche_auf_contorion()
|
||||
elif webseite == "Gastroteile Shop":
|
||||
self.suche_auf_gastroteileshop()
|
||||
elif webseite == "TiroLED":
|
||||
self.suche_auf_tiroled()
|
||||
elif webseite == "Megabad":
|
||||
self.suche_auf_megabad()
|
||||
elif webseite == "Baubeschlagshop":
|
||||
self.suche_auf_baubeschlag()
|
||||
elif webseite == "IPS":
|
||||
self.suche_auf_ips_shop()
|
||||
elif webseite == "Brewes":
|
||||
self.suche_auf_brewes()
|
||||
elif webseite == "Delker":
|
||||
self.suche_auf_delker()
|
||||
elif webseite == "Knauss":
|
||||
self.suche_auf_knauss()
|
||||
elif webseite == "Schildershop24":
|
||||
self.suche_auf_schildershop24()
|
||||
elif webseite == "Häfele":
|
||||
self.suche_auf_haefele()
|
||||
elif webseite == "Esmeyer":
|
||||
self.suche_auf_esmeyer()
|
||||
elif webseite == "Papstar":
|
||||
self.suche_auf_papstar()
|
||||
elif webseite == "Pacovis":
|
||||
self.suche_auf_pacovis()
|
||||
elif webseite == "Lusini":
|
||||
self.suche_auf_lusini()
|
||||
elif webseite == "Hygi":
|
||||
self.suche_auf_hygi()
|
||||
elif webseite == "Tischwelt":
|
||||
self.suche_auf_tischwelt()
|
||||
elif webseite == "Schafferer":
|
||||
self.suche_auf_schafferer()
|
||||
elif webseite == "Gastronomie Kaufhaus":
|
||||
self.suche_auf_gastronomie_kaufhaus()
|
||||
elif webseite == "Arbeitsplatzmatten Profi":
|
||||
self.suche_auf_arbeitsplatzmattenprofi()
|
||||
elif webseite == "Skiltex":
|
||||
self.suche_auf_skiltex()
|
||||
elif webseite == "Franz-Mensch":
|
||||
self.suche_auf_franzmensch()
|
||||
elif webseite == "Frank-Flechtwaren":
|
||||
self.suche_auf_frankflechtwaren()
|
||||
elif webseite == "ARA":
|
||||
self.suche_auf_ara_arbeitsschutz()
|
||||
elif webseite == "VKF-Renzel":
|
||||
self.suche_auf_vkf_renzel()
|
||||
elif webseite == "Börner":
|
||||
self.suche_auf_boerner()
|
||||
elif webseite == "GGM-Gastro":
|
||||
self.suche_auf_ggmgastro()
|
||||
elif webseite == "Böttcher":
|
||||
self.suche_auf_boettcher()
|
||||
elif webseite == "Büroshop24":
|
||||
self.suche_auf_bueroshop24()
|
||||
elif webseite == "Buchhandlung am Markt":
|
||||
self.suche_buchhandlung_am_markt()
|
||||
elif webseite == "Label-Ident":
|
||||
self.suche_auf_labelident()
|
||||
elif webseite == "Transpak":
|
||||
self.suche_auf_transpak()
|
||||
elif webseite == "PM":
|
||||
self.suche_auf_pml()
|
||||
elif webseite == "DM-Folien":
|
||||
self.suche_auf_dmfolien()
|
||||
elif webseite == "Proficleanshop":
|
||||
self.suche_auf_proficleanshop()
|
||||
elif webseite == "Siepmann":
|
||||
self.suche_auf_siepmann()
|
||||
elif webseite == "FK-Söhnchen":
|
||||
self.suche_auf_fksoehnchen()
|
||||
elif webseite == "Wahl-Agar":
|
||||
self.suche_auf_wahl_agrar()
|
||||
elif webseite == "TVV-Verpackungen":
|
||||
self.suche_auf_tvv()
|
||||
elif webseite == "Eierschachteln.de":
|
||||
self.suche_auf_eierschachteln()
|
||||
elif webseite == "KOX":
|
||||
self.suche_auf_kox()
|
||||
elif webseite == "Reinigungsberater.de":
|
||||
self.suche_auf_reinigungsberater()
|
||||
elif webseite == "VBS-Hobby":
|
||||
self.suche_auf_vbshobby()
|
||||
elif webseite == "Ökonomed":
|
||||
self.suche_auf_oekonomed()
|
||||
elif webseite == "Rossmann":
|
||||
self.suche_auf_rossmann()
|
||||
elif webseite == "Betzold":
|
||||
self.suche_auf_betzold()
|
||||
|
||||
|
||||
self.search_for_website(webseite)
|
||||
except Exception as e:
|
||||
print(f"Fehler bei der Suche auf {webseite}: {e}")
|
||||
|
||||
@ -606,7 +560,6 @@ class SearchThread(QThread):
|
||||
# Webseite aufrufen und auf das vollständige Laden warten
|
||||
self.driver.get(search_url)
|
||||
|
||||
|
||||
def suche_auf_wahl_agrar(self):
|
||||
# URL für die Suche generieren
|
||||
search_url = 'https://www.agrar-fachversand.com/de/' # Ersetzen Sie dies durch die tatsächliche URL für Wahl Agrar
|
||||
@ -694,18 +647,14 @@ class SearchThread(QThread):
|
||||
self.driver.get(search_url)
|
||||
|
||||
|
||||
|
||||
class WebseitenSucheApp(QWidget):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
self.categories, self.webpages = self.get_categories_and_webpages()
|
||||
|
||||
self.checkbox_states = {webpage: False for category_webpages in self.webpages for webpage in category_webpages}
|
||||
|
||||
self.search_term = ""
|
||||
self.driver = None
|
||||
|
||||
self.init_ui()
|
||||
|
||||
def get_categories_and_webpages(self):
|
||||
@ -726,9 +675,6 @@ class WebseitenSucheApp(QWidget):
|
||||
|
||||
return categories, webpages
|
||||
|
||||
|
||||
# ...
|
||||
|
||||
def init_ui(self):
|
||||
self.setStyleSheet("background-color: black; color: white;")
|
||||
layout = QVBoxLayout()
|
||||
@ -880,12 +826,6 @@ class WebseitenSucheApp(QWidget):
|
||||
# Setze den Stretch-Faktor für die zusätzliche Zeile zwischen den Kategorien
|
||||
grid_layout.setRowStretch(row_position + num_rows_for_category, 0)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################################################################
|
||||
|
||||
layout.addLayout(grid_layout)
|
||||
self.setLayout(layout)
|
||||
@ -905,20 +845,17 @@ class WebseitenSucheApp(QWidget):
|
||||
layout.addWidget(search_button)
|
||||
search_button.setStyleSheet("color: white; border: 1px solid white;")
|
||||
|
||||
|
||||
# Neues Suche-Button
|
||||
new_search_button = QPushButton("Neue Suche starten", self)
|
||||
new_search_button.clicked.connect(self.clear_checkboxes)
|
||||
layout.addWidget(new_search_button)
|
||||
new_search_button.setStyleSheet("color: white; border: 1px solid white;")
|
||||
|
||||
|
||||
self.setLayout(layout)
|
||||
self.setGeometry(300, 300, 400, 200)
|
||||
self.setWindowTitle('Webseiten Suche App')
|
||||
self.show()
|
||||
|
||||
|
||||
def make_checkbox_callback(self, webpage):
|
||||
def checkbox_callback(state):
|
||||
self.checkbox_states[webpage] = state == Qt.Checked
|
||||
|
Loading…
x
Reference in New Issue
Block a user