1from selenium import webdriver
2from apify import Actor
3import logging
4
5
6logging.basicConfig(level=logging.INFO)
7logger = logging.getLogger(__name__)
8
9async def main():
10 async with Actor:
11
12 options = webdriver.ChromeOptions()
13 options.add_argument('--headless')
14 options.add_argument('--no-sandbox')
15 options.add_argument('--disable-dev-shm-usage')
16
17
18 driver = webdriver.Chrome(options=options)
19 logger.info("Browser launched")
20
21
22 url = "https://jobs.citi.com/search-jobs/Data%20Analyst/India/287/1/2/1269750/22/79/50/2"
23 driver.get(url)
24 logger.info(f"Opened URL: {url}")
25
26
27 driver.implicitly_wait(15)
28 logger.info("Waiting for page load")
29
30
31 jobs = driver.find_elements("tag name", "li")
32 logger.info(f"Found {len(jobs)} elements with 'li' tag")
33
34
35 for job in jobs:
36 try:
37 title_elem = job.find_element("tag name", "h2")
38 title = title_elem.text
39 location = job.find_element("class name", "job-location").text
40 link = job.find_element("tag name", "a").get_attribute("href")
41 if "data analyst" in title.lower():
42 await Actor.push_data({
43 "title": title,
44 "location": location,
45 "link": link
46 })
47 logger.info(f"Found: {title} - {location}")
48 except Exception as e:
49 logger.info(f"Skipped a job - error: {str(e)}")
50
51
52 page_source = driver.page_source
53 if "data analyst" in page_source.lower():
54 logger.info("Page contains 'data analyst' - selectors might be wrong")
55 else:
56 logger.warning("No 'data analyst' in page source - check URL")
57
58
59 driver.quit()
60 logger.info("Browser closed")