From d765b133f01c76b8de31e58ff1f86995409f6fa8 Mon Sep 17 00:00:00 2001 From: olveyra Date: Thu, 17 Jul 2008 19:00:05 +0000 Subject: [PATCH] - --default-spider option gives the default spider (old --spider option) - --spider option now forces to use the given spider domain when arguments are urls --HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%4076 --- scrapy/trunk/scrapy/command/models.py | 9 +++++++-- scrapy/trunk/scrapy/spider/manager.py | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/scrapy/trunk/scrapy/command/models.py b/scrapy/trunk/scrapy/command/models.py index cb1aa1539..3b114b6ec 100644 --- a/scrapy/trunk/scrapy/command/models.py +++ b/scrapy/trunk/scrapy/command/models.py @@ -39,7 +39,8 @@ class ScrapyCommand(object): """ parser.add_option("-f", "--logfile", dest="logfile", help="logfile to use. if omitted stderr will be used", metavar="FILE") parser.add_option("-o", "--loglevel", dest="loglevel", default=None, help="log level") - parser.add_option("--spider", dest="spider", default=None, help="default spider (domain) to use if no spider is found") + parser.add_option("--default-spider", dest="default_spider", default=None, help="default spider (domain) to use if no spider is found") + parser.add_option("--spider", dest="spider", default=None, help="Force to use the given spider") parser.add_option("--nolog", dest="nolog", action="store_true", help="disable all log messages") parser.add_option("--profile", dest="profile", default=None, help="write profiling stats in FILE, to analyze later with: python -m pstats FILE", metavar="FILE") parser.add_option("--pidfile", dest="pidfile", help="Write process pid to file FILE", metavar="FILE") @@ -56,9 +57,13 @@ class ScrapyCommand(object): if opts.nolog: settings.overrides['LOG_ENABLED'] = False - if opts.spider: + if opts.default_spider: from scrapy.spider import spiders spiders.default_domain = opts.spider + + if opts.spider: + from scrapy.spider import spiders + spiders.force_domain = opts.spider if opts.pidfile: pid = os.getpid() diff --git a/scrapy/trunk/scrapy/spider/manager.py b/scrapy/trunk/scrapy/spider/manager.py index b6c14f166..cf3a3cfd8 100644 --- a/scrapy/trunk/scrapy/spider/manager.py +++ b/scrapy/trunk/scrapy/spider/manager.py @@ -20,6 +20,7 @@ class SpiderManager(object): self.loaded = False self.default_domain = None self.spider_modules = settings.getlist('SPIDER_MODULES') + self.force_domain = None @property def all(self): @@ -36,6 +37,8 @@ class SpiderManager(object): def fromurl(self, url, include_disabled=True): self._load_on_demand() + if self.force_domain: + return self._alldict.get(self.force_domain) domain = urlparse.urlparse(url).hostname domain = str(domain).replace('www.', '') if domain: