본문 바로가기

Programming/Python Web Crawler for intermediate learners

Web Crawler 008 - Making the Spider boot up. - 스파이더 구동하기.

지난 시간에는 스파이더 클래스를 초기화 하는 과정까지 알아보았다. 이번에는 이 스파이더 클래스를 조금 더 풍성하게 만들어 보자. 우선 이 스파이더 클래스가 객체화 될 때, self.boot(), self(crawl_page) 이렇게 2개의 함수를 호출하는 부분을 초기화하는데 넣어주었었다. 그래서 이번에는 이 2개의 함수 중 boot() 함수를 정의해 보려고 합니다. 


우선 아래 이미지를 먼저 보면서 살펴보자면, boot(self) 를 정의하고 create_project_dir(Spider.project_name) 이라고 하는 부분을 삽입해 주었습니다. 이는 클래스가 객체화될때, 이전에 만들어 둔 create_project_dir() 함수를 이용해서 폴더를 먼저 만들어 주게 하려고 했는데, 여기서 이렇게 사용을 해주고 있습니다. ▼

두 번째로는 프로젝트 네임과 기본 url 을 가지고 data file ( 'queue.txt', 'crawled.txt') 이 두개의 파일을 앞서 만든 폴더에 만들어주게 합니다. ▼

다음으로는 파일안에 있는 값들의 중복을 제거하게 하는 함수부분이었던 것을 활용하여 그 값을 Spider.queue 에 넣어주게 합니다. ▼

마찬가지로 crawled 값에도 위와 동일하게 적용하여 넣어줍니다. 지금 보니 아래 코드에서 Crawled 라고 대문자를 사용하였는데, 귀찮은 관계로 소문자로 변경을 해주세요.^^; ▼

마지막으로 여기서 정의하고 있는 boot() 함수는 클래스에 귀속이 되어 있을 필요가 없으므로, 추후에 발생하게 될 type error 를 미연에 방지하고자 staticmethod 로 선언을 해 줍니다. static method 로 선언을 해주었으므로 인자였던 self 는 넣어줄 필요가 없습니다. 이 부분을 이해 못하시는 분은 따로 staticmethod 를 구글링 해 보시기 바랍니다. 여기는..... 중급~(응~?) 이니까요^^;;▼

이렇게 해서 boot() 부분도 완성을 하였습니다. 다음에는 위에서 언급했던 crawl_page()  부분을 다루어 보도록 하겠습니다. 뿅~