개발자

웹 크롤러 코드 관리

2023년 05월 03일조회 100

요즘 웹 크롤러, 스크래핑 스크립트들을 많이 짜는데요. 코드 관리하기가 어려워서 질문합니다! 쓰고 있는 기술은 python과 beautifulsoup이구요. 기능 자체는 여러 사이트에서 공모주 정보를 긁어오는 기능입니다. 코드의 큰 흐름은 main -> crawl pages -> crawl page 느낌이고 crawl page라는 영역에서 site A crawler, site B crawler, site C crawler 처럼 각 사이트에 맞는 crawler 클래스가 있는 형태입니다. 크롤러 특성상 타 사이트 ui에 의존하고 있는데, 이런것들에 대한 의존성 관리는 어떻게 하시나요? 사이트별로 ui가 다 다른데 각 사이트에 맞는 크롤링 코드를 어떻게 관리하나요? 만약 의존하고 있던 사이트의 ui가 변경되면 그거에 맞게 크롤러 코드도 수정을 하시나요? 코드를 짜다보니 다른 분들은 어떻게 하고 계신지 궁금해서 질문 올립니다~~~

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

손정현님의 프로필 사진

안녕하세요! "크롤러 특성상 타 사이트 ui에 의존하고 있는데, 이런것들에 대한 의존성 관리는 어떻게 하시나요?" ui가 절대 변하지 않는다는 보장이 없기 때문에 ui에 대한 의존성이 생기는 것 같습니다. 그래도 최대한 코드 수정이 적도록 div, p 등의 요소로 dom element에 접근하기보다는 id, class와 같이 요소를 좀 더 쉽게 식별할 수 있는 값이 있으면 그걸 최대한 활용하려고 하는 편인것 같아요. "사이트별로 ui가 다 다른데 각 사이트에 맞는 크롤링 코드를 어떻게 관리하나요" 이거는 질문자님이 하신것처럼 사이트별로 개별 클래스를 만들어서 관리하는 편인것 같아요. "만약 의존하고 있던 사이트의 ui가 변경되면 그거에 맞게 크롤러 코드도 수정을 하시나요" 넵! 이거는 어쩔수없이 같이 수정되어야하는 것 같아요. 질문 주신 것처럼 크롤러는 ui에 의존성이 있는 경우가 많아서 유지보수하기 까다로운것 같아요. 잠깐 찾아보니 딥러닝 모델로 학습시켜서 크롤링을 하게하는 방법도 있긴하더라구요. 물론 나름의 어려움이 있긴하겠지만요. 한번 참고해보세요 :) - https://medium.com/datascience-semantics3/using-ai-to-automate-web-crawling-69683b99aa3e

커리어리 AI 봇님의 프로필 사진

웹 크롤러와 스크래핑 스크립트를 관리하기 위해 코드베이스를 체계적으로 구성하는 것이 중요합니다. 이를 위해서는 크게 두 가지를 고려해야 합니다. 첫째, 코드의 구조와 모듈화 방식을 결정해야 합니다. 사이트별로 다른 크롤러 클래스를 만드는 방법은 좋은 방법 중 하나입니다. 이 방법은 각 사이트의 크롤링 로직을 분리할 수 있어 가독성과 유지보수성이 좋아집니다. 이 방법으로 코드를 작성하면 의존하고 있는 사이트가 변경될 때 해당 사이트의 크롤러 클래스만 수정하면 되므로 다른 크롤러에 영향을 미치지 않습니다. 둘째, 변경 사항이 생길 때마다 코드를 어떻게 관리할지 결정해야 합니다. 사이트의 UI가 변경되면 해당 사이트의 크롤러 코드를 수정해야 합니다. 이때 Git과 같은 버전 관리 시스템을 사용하여 변경 내역을 추적할 수 있습니다. 또한, 코드 리뷰를 통해 변경 사항을 검토하고, 테스트 코드를 작성하여 변경 사항이 제대로 적용되는지 확인할 수 있습니다. 추가적으로, 웹 크롤러와 스크래핑 스크립트는 대상 사이트의 저작권과 사용 약관 등을 준수해야 합니다. 이를 위해서는 크롤링 대상 사이트의 이용약관을 반드시 확인하고, 그에 따른 크롤링 방식을 결정해야 합니다. 이를 지키지 않으면 법적 문제가 발생할 수 있습니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!