Die Webseiten wurden farblich markiert um zu sehen auf welchen Webseiten man auf jedenfall bestellen kann und welche nicht.
Außerdem wurde der Driver von Edge auf Chrome gewechselt. Zudem wurde die suche auf Böttcher angepasst.
This commit is contained in:
parent
acb70ba1e0
commit
bd51ecc0bb
@ -7,6 +7,8 @@ from selenium.webdriver.common.keys import Keys
|
|||||||
from selenium.webdriver.support.ui import WebDriverWait
|
from selenium.webdriver.support.ui import WebDriverWait
|
||||||
from selenium.webdriver.support import expected_conditions as EC
|
from selenium.webdriver.support import expected_conditions as EC
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import concurrent.futures
|
import concurrent.futures
|
||||||
|
|
||||||
@ -20,10 +22,11 @@ class SearchThread(QThread):
|
|||||||
self.selected_webpages = selected_webpages
|
self.selected_webpages = selected_webpages
|
||||||
self.search_term = search_term
|
self.search_term = search_term
|
||||||
self.error_message = None
|
self.error_message = None
|
||||||
self.driver = webdriver.Edge()
|
self.driver = webdriver.Chrome()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
try:
|
try:
|
||||||
|
|
||||||
for webseite in self.selected_webpages:
|
for webseite in self.selected_webpages:
|
||||||
self.start_search_on_webseite(webseite)
|
self.start_search_on_webseite(webseite)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -84,6 +87,8 @@ class SearchThread(QThread):
|
|||||||
self.suche_auf_bueroshop24()
|
self.suche_auf_bueroshop24()
|
||||||
elif webseite == "Buchhandlung am Markt":
|
elif webseite == "Buchhandlung am Markt":
|
||||||
self.suche_buchhandlung_am_markt()
|
self.suche_buchhandlung_am_markt()
|
||||||
|
elif webseite == "Transpak":
|
||||||
|
self.suche_auf_transpak()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Fehler bei der Suche auf {webseite}: {e}")
|
print(f"Fehler bei der Suche auf {webseite}: {e}")
|
||||||
@ -415,19 +420,13 @@ class SearchThread(QThread):
|
|||||||
def suche_auf_boettcher(self):
|
def suche_auf_boettcher(self):
|
||||||
|
|
||||||
# URL für die Suche generieren
|
# URL für die Suche generieren
|
||||||
search_url = 'https://www.bueromarkt-ag.de/' # Bitte die tatsächliche URL einsetzen
|
search_url = f'https://www.bueromarkt-ag.de/Artikelsuche_{self.search_term}.html' # Bitte die tatsächliche URL einsetzen
|
||||||
|
|
||||||
# Webseite aufrufen und auf das vollständige Laden warten
|
# Webseite aufrufen und auf das vollständige Laden warten
|
||||||
self.driver.get(search_url)
|
self.driver.get(search_url)
|
||||||
WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "autocomplete-0-input")))
|
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):
|
def suche_auf_bueroshop24(self):
|
||||||
|
|
||||||
@ -462,12 +461,31 @@ class SearchThread(QThread):
|
|||||||
# Enter-Taste drücken, um die Suche zu starten
|
# Enter-Taste drücken, um die Suche zu starten
|
||||||
search_box.send_keys(Keys.RETURN)
|
search_box.send_keys(Keys.RETURN)
|
||||||
|
|
||||||
categories = ["IT/EDV", "Haustechnik","Küche", "Verwaltung"]
|
def suche_auf_transpak(self):
|
||||||
|
# URL für die Suche generieren
|
||||||
|
search_url = f'https://www.shop.transpak.de/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.CLASS_NAME, "form-control")))
|
||||||
|
try:
|
||||||
|
# Warten, bis der Ablehnen-Button sichtbar ist
|
||||||
|
cookie_button = WebDriverWait(self.driver, 10).until(
|
||||||
|
EC.presence_of_element_located((By.XPATH, "//button[@data-cookiefirst-action='reject']"))
|
||||||
|
)
|
||||||
|
# Klicken Sie auf den Ablehnen-Button, um Cookies abzulehnen
|
||||||
|
cookie_button.click()
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Fehler beim Akzeptieren von Cookies: {e}")
|
||||||
|
|
||||||
|
categories = ["IT/EDV", "Haustechnik","Küche", "Verwaltung", "Transporte"]
|
||||||
webpages = [
|
webpages = [
|
||||||
["Reichelt", "Conrad", "Kosatec"],
|
["Reichelt: Technikbedarf", "Conrad: Technik Marktplatz", "Kosatec: Elektro Artikel"],
|
||||||
["Hornbach", "Contorion", "Gastroteile Shop", "TiroLED", "Megabad", "IPS", "Brewes", "Delker", "Knauss", "Schildershop24", "Häfele"],
|
["Hornbach: Bad & Sanitär, Baustoffe, Holz, Fenster & Türen, Bodenbeläge & Fliesen, Eisenwaren, Farben & Tapeten, Garten, Heizen, Klima & Lüftung, Innendeko & Bildershop, Küche, Leuchten & Elektro",
|
||||||
|
"Contorion", "Gastroteile Shop", "TiroLED", "Megabad", "IPS", "Brewes", "Delker", "Knauss", "Schildershop24", "Häfele"],
|
||||||
["Esmeyer", "Papstar", "Lusini", "Hygi", "Schafferer", "Gastronomie Kaufhaus"],
|
["Esmeyer", "Papstar", "Lusini", "Hygi", "Schafferer", "Gastronomie Kaufhaus"],
|
||||||
["Böttcher", "Büroshop24", "Buchhandlung am Markt"]
|
["Böttcher", "Büroshop24", "Buchhandlung am Markt"],
|
||||||
|
["Transpak"]
|
||||||
]
|
]
|
||||||
|
|
||||||
class WebseitenSucheApp(QWidget):
|
class WebseitenSucheApp(QWidget):
|
||||||
@ -495,6 +513,15 @@ class WebseitenSucheApp(QWidget):
|
|||||||
checkbox = QCheckBox(webpage)
|
checkbox = QCheckBox(webpage)
|
||||||
checkbox.setChecked(self.selected_webpages[webpage])
|
checkbox.setChecked(self.selected_webpages[webpage])
|
||||||
checkbox.stateChanged.connect(self.make_checkbox_callback(webpage))
|
checkbox.stateChanged.connect(self.make_checkbox_callback(webpage))
|
||||||
|
|
||||||
|
green_webpages = ["Reichelt","Kosatec","Hornbach","Contorion","Gastroteile Shop","TiroLED","Megabad","Esmeyer","Papstar","Lusini","Hygi","Schafferer","Gastronomie Kaufhaus","Böttcher","Büroshop24","Buchhandlung am Markt","Transpak"]
|
||||||
|
if any(green_webpage in webpage for green_webpage in green_webpages):
|
||||||
|
checkbox.setStyleSheet("color: green;")
|
||||||
|
|
||||||
|
yellow_webpages = ["Conrad","IPS","Brewes","Delker","Knauss","Schildershop24","Häfele",]
|
||||||
|
if any(yellow_webpage in webpage for yellow_webpage in yellow_webpages):
|
||||||
|
checkbox.setStyleSheet("color: yellow;")
|
||||||
|
|
||||||
layout.addWidget(checkbox)
|
layout.addWidget(checkbox)
|
||||||
# Suchbegriff-Eingabe
|
# Suchbegriff-Eingabe
|
||||||
search_label = QLabel("Geben Sie den Suchbegriff ein:")
|
search_label = QLabel("Geben Sie den Suchbegriff ein:")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user