dealfront_enrichment.py aktualisiert

This commit is contained in:
2025-07-08 19:20:09 +00:00
parent ca08055bb9
commit f31a8f5ff6

View File

@@ -25,27 +25,34 @@ class DealfrontScraper:
self.password = password self.password = password
def login_and_find_list(self, search_name): def login_and_find_list(self, search_name):
# 1) Login-Seite aufrufen # 1) Login-Seite öffnen & Credentials absenden
self.driver.get("https://app.dealfront.com/login") self.driver.get(LOGIN_URL)
# 2) Auf E-Mail-/Username-Feld warten, dann befüllen
self.wait.until(EC.visibility_of_element_located( self.wait.until(EC.visibility_of_element_located(
(By.CSS_SELECTOR, "input[type='email'], input[type='text']") (By.CSS_SELECTOR, "input[type='email'], input[type='text']")
)) ))
email_in = self.driver.find_element(By.CSS_SELECTOR, "input[type='email'], input[type='text']") self.driver.find_element(By.CSS_SELECTOR, "input[type='email'], input[type='text']")\
pwd_in = self.driver.find_element(By.CSS_SELECTOR, "input[type='password']") .send_keys(self.username)
email_in.clear(); email_in.send_keys(self.username) self.driver.find_element(By.CSS_SELECTOR, "input[type='password']")\
pwd_in.clear(); pwd_in.send_keys(self.password) .send_keys(self.password)
# 3) Absenden
self.driver.find_element(By.CSS_SELECTOR, "button[type='submit']").click() self.driver.find_element(By.CSS_SELECTOR, "button[type='submit']").click()
# 4) Auf den Quick-Link "Prospects finden" warten und klicken
self.wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Prospects finden"))) # 2) Quick-Link "Prospects finden" über XPath anklicken
self.driver.find_element(By.LINK_TEXT, "Prospects finden").click() prospects_btn = self.wait.until(EC.element_to_be_clickable((
# 5) Auf die Liste der Suchen warten und dort die gewünschte anklicken By.XPATH,
self.wait.until(EC.element_to_be_clickable((By.LINK_TEXT, search_name))) "//a[normalize-space()='Prospects finden']"
self.driver.find_element(By.LINK_TEXT, search_name).click() )))
# 6) Auf das erste Daten-Element warten, damit die Tabelle geladen ist prospects_btn.click()
first_locator = (By.CSS_SELECTOR, ".sticky-column a.t-highlight-text")
self.wait.until(EC.visibility_of_element_located(first_locator)) # 3) Gesuchte vordefinierte Suche anklicken
search_btn = self.wait.until(EC.element_to_be_clickable((
By.XPATH,
f"//a[normalize-space()='{search_name}']"
)))
search_btn.click()
# 4) Auf erstes Daten-Element warten
first = (By.CSS_SELECTOR, ".sticky-column a.t-highlight-text")
self.wait.until(EC.visibility_of_element_located(first))
time.sleep(1) time.sleep(1)
def extract_current_page_results(self): def extract_current_page_results(self):