code: def fetch(url, **kwargs):
      
      timeout = kwargs.pop('timeout', DEFAULT_TIMEOUT)
      kwargs['return_crawler'] = True
      crawler = wait_for(timeout, _fetch_in_reactor, url, **kwargs)
      if hasattr(crawler.spider, 'response'):
          return crawler.spider.response
docs: Fetches an URL and returns the response.
  
      Parameters
      ----------
      url : str
          An URL to crawl.
      spider_cls : scrapy.Spider (default: DefaultSpider)
          A spider class to be used in the crawler instance.
      capture_items : bool (default: True)
          If enabled, the scraped items are captured and returned.
      return_crawler : bool (default: False)
          If enabled, the crawler instance is returned. If ``capture_items`` is
          enabled, the scraped items is collected in ``crawler.items``.
      settings : dict, optional
          Custom crawler settings.
      timeout : int, (default: DEFAULT_TIMEOUT)
          Result wait timeout.
  
      Returns
      -------
      out : Response or None
          Returns a ``Response`` instance if the crawler is able to retrieve a
          response, otherwise it returns ``None``.
  
      Raises
      ------
      crochet.TimeoutError