웹 스크래핑으로 인디드 원격 일자리 수집 및 PostgreSQL 저장 프로젝트

웹 스크래핑을 활용한 인디드 원격 일자리 수집 및 PostgreSQL 저장 프로젝트

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • Python 기반 웹 스크래핑 및 데이터베이스 연동이 필요한 개발자
  • 중간 수준 이상의 Python, Selenium, PostgreSQL 이해도가 있는 사용자
  • 데이터 수집 자동화와 분석 도구 연동에 관심 있는 기획자/데이터 분석가

핵심 요약

  • Selenium + BeautifulSoup: 웹 스크래핑을 위한 자동화 도구로 selenium.webdriverBeautifulSoup 사용
  • Pandas 데이터 정제: df.drop_duplicates()를 통해 중복 제거 및 데이터 정리
  • PostgreSQL 저장: psycopg2를 사용한 DB 연결 및 CREATE TABLE/INSERT SQL 명령어 활용

섹션별 세부 요약

1. 환경 설정

  • pip install selenium beautifulsoup4 pandas psycopg2-binary 라이브러리 설치
  • ChromeDriver 다운로드 및 시스템 PATH 설정

2. Selenium을 통한 자동화

  • webdriver.Chrome() 객체 생성 후 Indeed 검색 페이지 접속
  • search_job.send_keys("Data Analyst Remote")로 검색어 입력 및 제출
  • time.sleep(5)로 결과 로딩 대기

3. BeautifulSoup 데이터 추출

  • soup = BeautifulSoup(driver.page_source, "html.parser")로 페이지 소스 파싱
  • job_cards = soup.find_all("div", class_="job_seen_beacon")으로 일자리 카드 추출
  • title, company, location, summary 필드를 find() 메서드로 추출

4. Pandas 데이터 정제

  • pd.DataFrame(jobs, columns=["Job Title", "Company", "Location", "Summary"]) 생성
  • df.drop_duplicates(inplace=True)로 중복 데이터 제거

5. PostgreSQL 데이터 저장

  • psycopg2.connect()를 통해 DB 연결
  • CREATE TABLE IF NOT EXISTS remote_jobs 명령어로 테이블 생성
  • INSERT INTO remote_jobs (job_title, company, location, summary)로 데이터 삽입

결론

  • 실무 적용 팁: SeleniumBeautifulSoup의 조합으로 복잡한 웹 스크래핑 가능
  • 확장성: Power BI/Tableau와 연동하여 분석 대시보드 구축 가능
  • 보안 고려사항: DB 연결 시 password 필드는 환경 변수로 관리 권장