
링크드인의 간편 지원 기능을 사용하여 조건에 부합하는 모든 공고에 지원서를 내는 프로그램
(지원서를 자동으로 일괄 제출하고 싶지 않으므로 조건에 부합하는 공고를 모두 저장하는 것으로 변경)
🔍 유의 사항
- 링크드인 계정 생성 : https://www.linkedin.com
- 셀레니움 사용 시 2단계 인증, 전화번호 인증 사용이 불가능해서 실습용 부계정 생성
🔍 유의 사항
- 강의 진행은
채용공고→ 키워드와 지역을 기입하고간편지원클릭 →검색클릭- 모든 조건이 포함된 url을 복사 후 웹드라이버를 사용하여 페이지를 여는 것
- 강의처럼 할 경우 로그인 화면이 계속 바뀌어서 처음부터 메인 화면에서 진행하는 것으로 변경

🔍 유의 사항
- 채용공고 하나를 자동으로 저장하는 것으로 변경
- 로그인 시 가끔씩 뜨는 캡차는 직접 완료해야 한다

🔍 유의 사항
- 페이지에 있는 모든 채용공고를 자동으로 저장하는 것으로 변경
- 셀레니움 요소를 찾지 못했을 때 나오는 커스텀 에러
NoSuchElementException임포트 하기
⌨️ main.py 최종
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://linkedin.com")
time.sleep(2)
# 로그인 버튼 클릭
login = driver.find_element(By.XPATH, value='//*[@id="main-content"]/section[1]/div/div/div[2]/a')
login.click()
time.sleep(5)
# 이메일과 비밀번호 입력
email_field = driver.find_element(By.ID, value="username")
email_field.send_keys("이메일")
password_field = driver.find_element(By.ID, value="password")
password_field.send_keys("비밀번호")
password_field.send_keys(Keys.ENTER)
time.sleep(5)
# 원하는 조건으로 검색
job_search_bar = driver.find_element(By.XPATH, value='//*[@id="global-nav-typeahead"]/input')
job_search_bar.send_keys("python developer")
job_search_bar.send_keys(Keys.ENTER)
time.sleep(5)
# 간편지원 필터 클릭
easy_apply = driver.find_elements(By.CSS_SELECTOR, "main div div div div ul li")[1]
easy_apply.click()
time.sleep(5)
# 공고 목록
job_list= driver.find_elements(By.CLASS_NAME, 'jobs-search-results__list-item')
print(len(job_list))
for job in job_list:
job.click()
driver.execute_script("arguments[0].scrollIntoView();", job)
time.sleep(2)
# 공고 저장
try:
save = driver.find_element(By.CLASS_NAME, "jobs-save-button")
save.click()
time.sleep(5)
# 이미 내려간 공고일 경우 스킵하기
except NoSuchElementException:
print("No save button, skipped.")
continue