- --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
This commit is contained in:
olveyra 2008-07-17 19:00:05 +00:00
parent abde0e5f51
commit d765b133f0
2 changed files with 10 additions and 2 deletions

View File

@ -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()

View File

@ -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: