docs: async def _collect_sample(self, url, url_pattern):
          """
          Sample collection is meant to be very tolerant to generic failures as failing to
          obtain the sample has important consequences on the results.
  
          - Multiple retries with longer delays
          - Larger than usual timeout
          """
          samples = []
  
          urls = [self.path_generator.generate_url(url, url_pattern) for _ in range(self.confirmation_factor)]
  
          iterator = asyncio.as_completed([self._fetch_sample(url) for url in urls])
          for promise in iterator:
              try:
                  sig = await promise
                  if sig:
                      samples.append(sig)
              except RejectRequest as e:
                  pass
  
          if not samples:
              raise StopRequest("Impossible to obtain sample")
          else:
              return samples