2013-01-05 10 views
2

웹 사이트를 크롤링하기 위해 치료를 사용하려고하지만 사이트 맵이나 페이지 인덱스가 없습니다. 치료를 통해 웹 사이트의 모든 페이지를 크롤링하려면 어떻게해야합니까?사이트를 크롤링하는 방법 (치료와 함께 주어진 도메인 URL 만 해당)

항목을 추출하지 않고 사이트의 모든 페이지를 다운로드하면됩니다. 스파이더 규칙의 모든 링크를 따라 설정하면됩니까? 그러나 나는 이런 방식으로 치료가 복제 URL을 피할 것인지 여부를 모른다.

+0

왜 웹 사이트에있는 모든 링크를 통해 단지 루프 멀리 기어? – enginefree

+0

@enginefree 모든 링크를 반복하는 것이 실현 가능한 방법이지만, 나는 그것을 치료법으로 설정하는 방법을 모른다. –

+0

항목을 스크랩하고 싶지 않은 이유는 왜 scrapy를 사용하고 싶습니까? 그냥 어떤 웹 사이트 다운 로더를 사용하고 그것은 당신을 위해 모든 것을 할 것입니다 – user2134226

답변

2

나는 답을 직접 찾았습니다. CrawlSpider 클래스를 사용하면 SgmlLinkExtractor 함수에서 allow =() 변수 만 설정하면됩니다. 문서가 말하듯이 :

(정규 표현식 (또는리스트)) - 추출 할 수 있도록 (절대) URL이 일치해야하는 하나의 정규 표현식 (또는 정규 표현식 목록)을 허용합니다. 주어진 (또는 비어 있지 않은) 경우 모든 링크와 일치합니다.

http://doc.scrapy.org/en/latest/topics/link-extractors.html#topics-link-extractors

관련 문제