본문 바로가기

이벤트

웹 크롤링 기초 강의ㅣ뉴스, 기차 예매, 여행 사이트 실습 [3강 : 예매 가능한 기차표 찾기 프로젝트, 크롤링이 너무 오래 걸릴 때: 자주 할만한 실수 체크하기]

https://mcode.co.kr/video/list2?viewMode=view&idx=92

 

메타코드M

빅데이터 , AI 강의 플랫폼 & IT 현직자 모임 플랫폼ㅣ메타코드 커뮤니티 일원이 되시기 바랍니다.

mcode.co.kr

제가 공부하는 사이트는 메타코드M이라는 사이트입니다! 

메타코드에서 제공받은 강의를 바탕으로 후기를 작성합니다. 

 

크롤링 시간이 오래 걸리는 경우 자주 발생할 수 있는 실수들을 체크하고 개선하는 방법에 대해 자세히 설명하겠습니다. 

위 코드는 상당히 오랜 시간이 걸려도 크롤링이 되지 않고 코드가 실행되지 않고 있습니다. 

오류가 발생되는 원인에 대해서 찾아보겠습니다. 

크롤링을 할때 과도한 요청 보내기 웹사이트에 너무 많은 요청을 보내면 서버에 부담을 줄 수 있습니다. 이를 방지하기 위해 요청 간 적절한 시간 지연을 두거나 요청 횟수를 제한하는 등의 조치가 필요합니다.

 

빠른 파싱 라이브러리 사용: BeautifulSoup와 같은 빠른 파싱 라이브러리를 사용하면 HTML 문서 파싱 속도를 높일 수 있습니다. 크롤링 작업시 팁이였습니다! 

 

 

크롤링 작업시, XPath 표현식이 복잡할수록 처리 속도가 느려질 수 있습니다. 가능한 간단하고 명확한 XPath를 사용하는 것이 좋습니다.

 

XPath 성능 향상을 위한 주요 방법

  1. 간단한 XPath 사용: 복잡한 XPath 표현식은 처리 속도가 느리므로, 가능한 한 간단하고 명확한 XPath를 사용하는 것이 좋습니다. 
  2. 구조 정보 활용 자제: XPath는 XML 문서의 구조 정보를 활용하므로, 구조 정보를 많이 사용할수록 성능이 저하됩니다.

크롤링 작업시! 불필요한 데이터 수집 필요한 데이터만 선별적으로 수집하는 것이 중요합니다. 불필요한 데이터를 수집하면 처리 시간이 늘어날 수 있습니다.

 

  • 중복 데이터를 사전에 제거하면 저장 공간과 처리 시간을 절감할 수 있습니다. 
  • 중복 데이터 제거는 데이터 수집 단계에서 이루어지는 인라인 중복 제거(Inline Deduplication)와 저장 후 오프라인으로 이루어지는 백그라운드 중복 제거(Background Deduplication)가 있습니다.

동적 페이지 처리 미흡 JavaScript로 생성되는 동적 콘텐츠를 제대로 처리하지 않으면 크롤링 속도가 느려질 수 있습니다. Selenium과 같은 도구를 활용하여 동적 페이지를 처리하는 것이 좋습니다.

 

동적 페이지 크롤링의 필요성

  • 많은 웹사이트들이 JavaScript를 사용하여 동적으로 콘텐츠를 생성하고 있습니다.
  • 이러한 동적 콘텐츠는 단순한 HTML 파싱으로는 제대로 수집할 수 없습니다.
  • 동적 페이지 크롤링을 하지 않으면 웹사이트의 실제 콘텐츠를 제대로 수집할 수 없어 크롤링 성능이 저하됩니다.

 

 

깔끔하게 크롤링된 모습입니다. 

크롤링 과정에서 발생할 수 있는 오류를 개선하고 분석하는 시간이였습니다.

매번 다른 사이트에서 크롤링 할 때 마다 문제가 생기지 않을까 고민이 되지만 하나하나 해결해가는 재미도 있을것 같습니다. 앞으로도 많은 예제를 통해서 훈련을 하겠습니다. 감사합니다!