2016-07-07 13 views
0

나는 프록시를 사용하여 scrapy를 사용하여 웹 크롤러를 작성했습니다. 나는 금지 된 것을 피하기 위해 항상 무작위 프록시 풀이 필요하기 때문에 무료로 사용할 수있는 IP를 제공하는 웹 사이트를 긁는 다른 크롤러를 작성하기로 결정했습니다.Scrapy : 하나의 프로젝트에서 여러 크롤러

현재 두 개의 스파이더가 서로 다른 설정, 파이프 라인 및 미들웨어가있는 두 개의 개별적인 치료 프로젝트에 있습니다. 크롤링 프로세스를 시작할 때마다 먼저 IP를 긁어 파일로 내보내고 다른 크롤러의 루트 디렉토리로 이동하여 IP를 settings.py로 읽어야합니다. 두 개의 스파이더를 하나의 프로젝트로 결합하여 전체 크롤링 프로세스를 시작하기 위해 하나의 명령 만 실행하면되는지 궁금합니다.

고맙습니다.

답변

1

1 개의 프로젝트에 2 개의 거미를 가질 수 있지만 크롤링하려면 2 개의 다른 명령을 실행해야합니다. 할 수있는 일은 독립적으로 프로세스를 시작하는 스크립트를 만드는 것입니다.

import subprocess 
p1=subprocess.Popen(["scrapy","crawl", "spider"]) 
p2=subprocess.Popen(["scrapy","crawl", "spider2"]) 
당신은 심지어 당신이

p=subprocess.Popen(["scrapy","crawl", "spider", "-a", "website='Newton.ai'"]) 
로 다스 려 한 IP에로에 인수를 전달할 수 있습니다

관련 문제