• Feed
  • Explore
  • Ranking
/
/
    실무 아카이브

    웹 크롤링 – 기간 컬럼 라벨 혼입 문제

    기간 컬럼에 라벨이 섞여 저장된 문제를 분석하고, .text 우선 + fallback 처리로 해결했다.
    Python웹크롤링트러블슈팅Selenium
    김
    김무명
    2025.09.02
    ·
    3 min read

    📝 상황

    데이터 수집 과정에서 기간 컬럼에 접수기간> 라벨까지 저장되는 문제가 발생함.

    🔍 원인 분석

    • 기간 추출 시 em.date.get_attribute("title")을 사용했음

    • 해당 속성에는 "접수기간>YYYY.MM.DD~YYYY.MM.DD" 형태로 라벨+날짜가 함께 들어있었음

    • 반면, .text 값에는 화면에 보이는 순수 날짜 범위만 존재했음

    • 즉, 잘못된 속성을 가져와 불필요한 라벨까지 저장한 것

    🔧 해결 과정

    • 기간 추출 시 .text를 우선 사용하여 순수 날짜만 저장

    • 만약 .text가 비어 있으면 fallback으로 title을 가져오고, 라벨을 제거한 뒤 저장

    • 종료일 판정 로직(parse_end_date_from_text)은 그대로 활용

    ✅ 결과

    • 기간 컬럼에 순수 날짜만 정확히 기록됨

    • 라벨 혼입으로 인한 데이터 가공 오류가 제거되어, 이후 QA 로직의 신뢰성이 향상됨

    💡 실무 인사이트

    1. DOM은 속성마다 데이터 성격이 다르다

      • text, title, value 등 어디에 진짜 데이터가 들어있는지 반드시 확인해야 함.

    2. 한 사이트의 구조만 믿으면 안 된다

      • 어떤 경우는 text, 또 다른 경우는 attribute에 필요한 값이 있을 수 있음.

    3. 크롤링은 ‘정답 위치’를 찾는 과정이다

      • 단순히 get_attribute()에 의존하면 라벨·불필요한 값이 섞여 정확도가 떨어진다.

      • 실제 페이지 구조를 보고 올바른 소스를 선택해야 한다.







    - 컬렉션 아티클