This method is rather simple, it will group the urls to be scanner together
    based on (protocol, domain and port).

    :param urls_file: The filename with all the URLs
    :return: A list of scans to be run

def create_scans(urls_file):
    """
    This method is rather simple, it will group the urls to be scanner together
    based on (protocol, domain and port).

    :param urls_file: The filename with all the URLs
    :return: A list of scans to be run
    """
    cli_logger.debug('Starting to process batch input file')
    created_scans = []

    for line in urls_file:
        line = line.strip()

        if line.startswith('#'):
            continue

        if not line:
            continue

        try:
            protocol, domain, port, path = parse_url(line)
        except ValueError, ve:
            cli_logger.debug(str(ve))
            continue

        for scan in created_scans:
            if scan.matches(protocol, domain, port):
                scan.add_path(path)
                args = (path, scan.get_root_url())
                cli_logger.debug('Added %s to %s' % args)
                break
        else:
            scan = BatchScan(protocol, domain, port, path)
            created_scans.append(scan)
            cli_logger.debug('Added a new scan to %s' % scan.get_root_url())

    cli_logger.debug('Created a total of %s scans' % len(created_scans))
    return created_scans