def _fetch_in_reactor(url, spider_cls=DefaultSpider, **kwargs):
    """Fetches an URL and returns the response.

    Parameters
    ----------
    url : str
        An URL to fetch.
    spider_cls : scrapy.Spider (default: DefaultSpider)
        A spider class to be used in the crawler.
    kwargs : dict, optional
        Additional arguments to be passed to ``_run_spider_in_reactor``.

    Returns
    -------
    crochet.EventualResult

    """
    def parse(self, response):
        self.response = response
    req = Request(url) if isinstance(url, six.string_types) else url
    req.dont_filter = True
    req.meta['handle_httpstatus_all'] = True
    spider_cls = override_start_requests(spider_cls, [req], parse=parse)
    return _run_spider_in_reactor(spider_cls, **kwargs)
Fetches an URL and returns the response.

    Parameters
    ----------
    url : str
        An URL to fetch.
    spider_cls : scrapy.Spider (default: DefaultSpider)
        A spider class to be used in the crawler.
    kwargs : dict, optional
        Additional arguments to be passed to ``_run_spider_in_reactor``.

    Returns
    -------
    crochet.EventualResult