'Log and silence errors that come from the engine (typically download
errors that got propagated thru here)'

def _log_download_errors(self, spider_failure, download_failure, request, spider):

    if (isinstance(download_failure, Failure) and (not download_failure.check(IgnoreRequest))):
        if download_failure.frames:
            logger.error('Error    downloading    %(request)s', {'request': request}, exc_info=failure_to_exc_info(download_failure), extra={'spider': spider})
        else:
            errmsg = download_failure.getErrorMessage()
            if errmsg:
                logger.error('Error    downloading    %(request)s:    %(errmsg)s', {'request': request, 'errmsg': errmsg}, extra={'spider': spider})
    if (spider_failure is not download_failure):
        return spider_failure
