docs: def spawn(self, url, force_spawn=False):
          """use the url for creation of domain and fetch cookies
  
          - init cache dir by the url domain as ``<base>/domain``
          - save the cookies to file ``<base>/domain/cookie.txt``
          - init ``headers.get/post/json`` with response info
          - init ``site_dir/site_raw/site_media``
  
          :param url:
          :type url:
          :param force_spawn:
          :type force_spawn:
          :return:
          :rtype:
          """
          _url, domain = self.get_domain_home_from_url(url)
          if not _url:
              return False
  
          self.cache['site_dir'] = os.path.join(self.cache['base'], self.domain)
          for k in ['raw', 'media']:
              self.cache['site_' + k] = os.path.join(self.cache['site_dir'], k)
              helper.mkdir_p(self.cache['site_' + k], True)
  
          ck_pth = os.path.join(self.cache['site_dir'], 'cookie.txt')
          helper.mkdir_p(ck_pth)
  
          name = os.path.join(self.cache['site_raw'], 'homepage')
          # not force spawn and file ok
          if not force_spawn and helper.is_file_ok(name):
              # zlog.debug('{} exist!'.format(name))
              self.sess.cookies = self.load_cookies(ck_pth)
              return True
          else:
              zlog.debug('{} not exist!'.format(name))
  
          res = self.sess.get(url, headers=self.__header__)
          if res.status_code != 200:
              return False
          if res:
              helper.write_file(res.content, name)
          # self.load(url)
  
          for k, v in self.headers.items():
              self.headers[k] = res.request.headers
  
          self.dump_cookies(cookies=self.sess.cookies, save_to=ck_pth)
  
          return True