mirror of https://github.com/scrapy/scrapy.git
OffsiteMiddleware: removed logging and simplified implementation
This commit is contained in:
parent
87fbc9c58c
commit
eca05c9e12
|
|
@ -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 ())
|
||||
|
|
|
|||
Loading…
Reference in New Issue