scrapy은 개선된 python 고유의 collection.deque을 사용하여 크롤링할 request을 저장합니다. 어떻게 두 명 이상의 Spider이 deque을 공유할 수 있나요?
크롤링할 대기열은 공유할 수 없으며 배포도 말도 안 됩니다. scrapy-redis이 솔루션을 제공하고, collection.deque을 redis 데이터베이스로 대체하고, 여러 크롤러가 동일한 redis 서버에서 크롤링할 request을 저장하므로 여러 spider가 동일한 Read in으로 이동할 수 있습니다. 데이터베이스화하여 유통의 주요 문제를 해결합니다.
참고: 는 redis을 request 스토어로 대체하지 않으며, scrapy는
에 직접 배포할 수 있습니다!
scrapy은 待爬队列와 직접적으로 관련된 스케줄러 Scheduler입니다.
scrapy
구조 참조
새 request를 대기열에 추가하고 크롤링할 다음 request을 꺼내는 등의 작업을 담당합니다. 따라서 redis를 교체한 후에는 다른 구성 요소도 변경해야 합니다.
그래서 제가 개인적으로 이해한 바는 동일한 크롤러를 여러 시스템에 배포하는 것이 상대적으로 간단하다는 것입니다. 분산 배포 redis, 참조 주소 내 블로그입니다. 그리고 URL 중복 제거를 포함한 이러한 작업은 이미 작성된 scrapy-redis 프레임워크의 기능입니다.
참조 주소는 여기에서 예시를 다운로드하여 구체적인 구현을 확인할 수 있습니다. 저는 최근 scrapy-redis에도 이 작업을 진행하고 있으며, 배포한 후 이 답변을 업데이트하겠습니다.
한두 문장으로 명확하게 설명할 수는 없는 것 같아요.
이전에 언급한 블로그 게시물이 여러분에게 도움이 되기를 바랍니다.
개인적인 이해에 대해 말씀드리겠습니다.
scrapy
은 개선된python
고유의collection.deque
을 사용하여 크롤링할request
을 저장합니다. 어떻게 두 명 이상의Spider
이deque
을 공유할 수 있나요?크롤링할 대기열은 공유할 수 없으며 배포도 말도 안 됩니다.
scrapy-redis
이 솔루션을 제공하고,collection.deque
을redis
데이터베이스로 대체하고, 여러 크롤러가 동일한redis
서버에서 크롤링할request
을 저장하므로 여러spider
가 동일한 Read in으로 이동할 수 있습니다. 데이터베이스화하여 유통의 주요 문제를 해결합니다.참고: 는
에 직접 배포할 수 있습니다!redis
을request
스토어로 대체하지 않으며,scrapy
는scrapy
은待爬队列
와 직접적으로 관련된 스케줄러Scheduler
입니다.
구조 참조scrapy
새
request
를 대기열에 추가하고 크롤링할 다음request
을 꺼내는 등의 작업을 담당합니다. 따라서 redis를 교체한 후에는 다른 구성 요소도 변경해야 합니다.그래서 제가 개인적으로 이해한 바는 동일한 크롤러를 여러 시스템에 배포하는 것이 상대적으로 간단하다는 것입니다. 분산 배포
redis
, 참조 주소내 블로그입니다. 그리고 URL 중복 제거를 포함한 이러한 작업은 이미 작성된
scrapy-redis
프레임워크의 기능입니다.참조 주소는 여기에서 예시를 다운로드하여 구체적인 구현을 확인할 수 있습니다. 저는 최근
scrapy-redis
에도 이 작업을 진행하고 있으며, 배포한 후 이 답변을 업데이트하겠습니다.새로운 진행사항이 있으면 공유하고 소통할 수 있습니다.
@伟兴 안녕하세요 11.10.15에 이 댓글을 봤는데 지금 결과가 나오나요?
당신의 블로그를 추천해주실 수 있나요? 감사합니다~
chenjian158978@gmail.com으로 연락주세요