Skip to content

Commit 9cc34c8

Browse files
committed
fix login function and error handling in selenium scraper
1 parent 5fe4412 commit 9cc34c8

File tree

1 file changed

+7
-18
lines changed

1 file changed

+7
-18
lines changed

backend/scraping/selenium_scraper.py

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -95,21 +95,11 @@ def login(driver):
9595
driver.get('https://www.instagram.com/')
9696
wait(2, 4)
9797

98-
driver.save_screenshot(f"{LOG_DIR}/login.png")
99-
with open(f"{LOG_DIR}/feed_snapshot.html", "w", encoding="utf-8") as f:
100-
f.write(driver.page_source)
101-
10298
try:
103-
WebDriverWait(driver, 5).until(
104-
EC.presence_of_element_located((By.TAG_NAME, "article"))
99+
username_field = WebDriverWait(driver, 5).until(
100+
EC.presence_of_element_located((By.NAME, "username"))
105101
)
106-
logger.info("Session already active, skipping login...")
107-
return True
108-
except NoSuchElementException:
109-
logger.info("Login required...")
110-
111-
try:
112-
username_field = driver.find_element(By.NAME, "username")
102+
logger.info("Logging in...")
113103
password_field = driver.find_element(By.NAME, "password")
114104
typing(username_field, IG_USERNAME)
115105
wait(0.5, 1.5)
@@ -136,20 +126,19 @@ def login(driver):
136126
wait(1, 2)
137127
except TimeoutException:
138128
continue
139-
except Exception as e:
140-
logger.debug(f"Failed to dismiss popup {xpath}: {e}")
141129

142130
# load homepage
143-
WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.TAG_NAME, "article")))
144-
logger.info(f"Login successful, {driver.current_url} loaded!")
131+
WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.XPATH, "//*[local-name()='svg' and @aria-label='New post']")))
132+
logger.info(f"Login successful, home page loaded!")
145133
return True
146134
except TimeoutException:
147-
logger.error("Login failed, timed out waiting for homepage :(")
135+
logger.info("Login form not found, assuming session is active")
148136
driver.save_screenshot(f"{LOG_DIR}/login_failed.png")
149137
return False
150138
except Exception as e:
151139
logger.error(f"An error occurred during login: {e}")
152140
logger.error(traceback.format_exc())
141+
driver.save_screenshot(f"{LOG_DIR}/login_error.png")
153142
return False
154143

155144

0 commit comments

Comments
 (0)