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 import expected_conditions as EC
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
|
||||
import sys
|
||||
import concurrent.futures
|
||||
|
||||
@ -20,10 +22,11 @@ class SearchThread(QThread):
|
||||
self.selected_webpages = selected_webpages
|
||||
self.search_term = search_term
|
||||
self.error_message = None
|
||||
self.driver = webdriver.Edge()
|
||||
self.driver = webdriver.Chrome()
|
||||
|
||||
def run(self):
|
||||
try:
|
||||
|
||||
for webseite in self.selected_webpages:
|
||||
self.start_search_on_webseite(webseite)
|
||||
except Exception as e:
|
||||
@ -84,6 +87,8 @@ class SearchThread(QThread):
|
||||
self.suche_auf_bueroshop24()
|
||||
elif webseite == "Buchhandlung am Markt":
|
||||
self.suche_buchhandlung_am_markt()
|
||||
elif webseite == "Transpak":
|
||||
self.suche_auf_transpak()
|
||||
|
||||
except Exception as e:
|
||||
print(f"Fehler bei der Suche auf {webseite}: {e}")
|
||||
@ -415,19 +420,13 @@ class SearchThread(QThread):
|
||||
def suche_auf_boettcher(self):
|
||||
|
||||
# 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
|
||||
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):
|
||||
|
||||
@ -462,12 +461,31 @@ class SearchThread(QThread):
|
||||
# Enter-Taste drücken, um die Suche zu starten
|
||||
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 = [
|
||||
["Reichelt", "Conrad", "Kosatec"],
|
||||
["Hornbach", "Contorion", "Gastroteile Shop", "TiroLED", "Megabad", "IPS", "Brewes", "Delker", "Knauss", "Schildershop24", "Häfele"],
|
||||
["Reichelt: Technikbedarf", "Conrad: Technik Marktplatz", "Kosatec: Elektro Artikel"],
|
||||
["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"],
|
||||
["Böttcher", "Büroshop24", "Buchhandlung am Markt"]
|
||||
["Böttcher", "Büroshop24", "Buchhandlung am Markt"],
|
||||
["Transpak"]
|
||||
]
|
||||
|
||||
class WebseitenSucheApp(QWidget):
|
||||
@ -495,6 +513,15 @@ class WebseitenSucheApp(QWidget):
|
||||
checkbox = QCheckBox(webpage)
|
||||
checkbox.setChecked(self.selected_webpages[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)
|
||||
# Suchbegriff-Eingabe
|
||||
search_label = QLabel("Geben Sie den Suchbegriff ein:")
|
||||
|
Loading…
x
Reference in New Issue
Block a user