웹 스크래핑을 활용한 인디드 원격 일자리 수집 및 PostgreSQL 저장 프로젝트
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- Python 기반 웹 스크래핑 및 데이터베이스 연동이 필요한 개발자
- 중간 수준 이상의 Python, Selenium, PostgreSQL 이해도가 있는 사용자
- 데이터 수집 자동화와 분석 도구 연동에 관심 있는 기획자/데이터 분석가
핵심 요약
- Selenium + BeautifulSoup: 웹 스크래핑을 위한 자동화 도구로
selenium.webdriver
와BeautifulSoup
사용 - 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)
로 데이터 삽입
결론
- 실무 적용 팁:
Selenium
과BeautifulSoup
의 조합으로 복잡한 웹 스크래핑 가능 - 확장성:
Power BI
/Tableau
와 연동하여 분석 대시보드 구축 가능 - 보안 고려사항: DB 연결 시
password
필드는 환경 변수로 관리 권장