OffsiteMiddleware: removed logging and simplified implementation

This commit is contained in:
Pablo Hoffman 2009-06-09 12:37:15 -03:00
parent 87fbc9c58c
commit eca05c9e12
1 changed files with 6 additions and 9 deletions

View File

@ -3,16 +3,13 @@ OffsiteMiddleware: Filters out Requests for URLs outside the domains covered by
the spider.
"""
from scrapy import log
from scrapy.http import Request
from itertools import ifilter
from scrapy.item import ScrapedItem
from scrapy.utils.url import url_is_from_spider
class OffsiteMiddleware(object):
def process_spider_output(self, response, result, spider):
def _filter(r):
if isinstance(r, Request) and not url_is_from_spider(r.url, spider):
log.msg("Ignoring link (offsite): %s " % r.url, level=log.DEBUG, domain=spider.domain_name)
return False
return True
return (r for r in result or () if _filter(r))
def process_spider_output(self, response, result, spider):
filter = lambda x: isinstance(x, ScrapedItem) or url_is_from_spider(x.url, spider)
return ifilter(filter, result or ())