개발자

크롤링 하는 데이터가 많을때는 어떻게 하나요?

2024년 05월 10일조회 186

데이터 분석 프로젝트 진행중인 대학생입니다 코드 자체는 문제 없이 잘 되는데 가져와야할 데이터가 많아서 실행시간이 너무 길어지는데 분산처리나 병렬처리를 통해 해결할 수 있을까요? 해결할 수 있다면 어떤걸 공부해야할까요?

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

답변 2

디큐님의 프로필 사진

정석적인 접근은 크롤링하는 잡 갯수만큼 병렬처리 즉 인스턴스를 더 띄우는 방법이 있겠습니다. 하지만 간단하게 해결하시려면 카테고리 id나 갯수로 청크를 나누셔서 멀티 프로세스를 띄우는 것도 방법입니다. 예를 들어 스크립트를 실행할때 인자로 0부터 9까지의 숫자를 부여하고, 각각 10등분된 청크만을 크롤링하도록 하는거죠.

profile picture

익명

작성자

2024년 05월 11일

청크로 나눠서 멀티프로세싱으로 가져오니까 그냥 실행할때와 확연히 차이가 납니다. 감사합니다.

백승윤님의 프로필 사진

우선 이전 답변자 분이 알려주신대로 멀티프로세싱을 활용해서 시간 줄이셨다니 다행이네요! 저는 추가적으로 코드 상에 비효율이 존재하진 않는지 확인해보시는 걸 추천드립니다. 우리가 pandas를 쓸때도 for문을 써서 각 row마다 처리를 한다던지 등 제대로 사용하지 못하는 부분들이 있을 수 있잖아요? 이런 부분들을 체크해보시면 좋을 것 같아요. 이걸 우리는 프로파일링이라고 하는데요. 코드 상에서 어디가 시간이 많이 소요되고 메모리가 많이 필요한지 파악해 병목을 해결해볼 수 있습니다. 이런 디버깅을 하실 때 line_profiler 라는 라이브러리를 사용해보시는 걸 추천드려요!

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

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

또는

이미 회원이신가요?

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

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

새로운 질문 올리기

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