본문 바로가기

크롤링

크롤러를 만들어봅시다 (1) - Scrapy 설치와 설정 연구 목적으로 데이터를 얻고 싶으나 실제 기업의 데이터나 사내 데이터의 경우 많은 제약사항으로 연구에 사용되지 못하는 경우가 태반이다. 그래서 웹에 존재하는 데이터를 긁어 데이터셋을 만드는 것을 웹 크롤링이라고 한다. 웹 크롤링을 하는 방법은 여러 가지가 있으나, 여기에선 Python과 Scrapy를 이용한 크롤러를 제작해보도록 하겠다. 모든 설치 과정은 windows 기준이다. WARNING: 크롤링을 하는 데에 대한 모든 책임은, 크롤러를 실행하는 당사자에게 있음을 밝힌다. Python 은 편리하고 쉬운 스크립트 언어로 널리 사용되고 있는데, 유독 Python을 사용한 크롤러 모듈들이 많이 개발되어 있다. 그 중 Scrapy는 간단하게!(물론 열심히 공부한 이에게) 크롤링을 할 수 있게 도와준다. 우.. 더보기
크롤링은 신중히! 자나 깨나 ban 조심! 모 사이트를 Scrapy를 사용해 크롤링 하던 중 IP가 블럭되는 사태가 일어났다. 근 1주일동안 400만개 이상의 데이터를 추출해냈으니 그럴 만도 하겠지.....만서도 데이터가 궁한 나는 아쉬운 마음에 Admin에게 메일을 썼다... 하지만 돌아온 답변은 ..ㅠㅠ Scraping is very likely to result in an IP ban. You're better off not doing any sort of scraping. 네 그렇답니다....distributed 로 짜도 이 정도 양을 긁는 건 한계가 있고...다른 방법을 찾아보든지 해야겠네 후....ㅠ 더보기
[Scrapy] start_url 부터 긁어야 할 때 scrapy 를 사용할 때, start_url에도 긁어야 할 내용이 있는 경우엔 parse_start_url을 오버라이드 해야한다. 기본적으로 start_url은 Rule을 적용하지 않는데, 이 함수를 재정의함으로 첫 페이지부터 크롤링이 시작되도록 한다. spider 의 class 안에 다음과 같이 넣어주면 된다. def parse_start_url(self, response): return self.parse_item(response) 더보기