Canister ids can be converted to/from integers. Have a look at some debug prints of Rust’s
candid::Principal. Every subnet has ranges of these integers assigned for which it is responsible. You can maybe find the ranges via the registry, or at least from the certificates returned by the different subnets. Each subnet then creates canisters with sequential ids. So you end up with these ids as the first few canisters ever created. If you then find out where the counter is currently, it is pretty easy to scan for the newest canisters.
But to be honest
this sounds a bit too optimistic IMO. You’re probably better off looking on e.g. Discord where people talk about the projects they’re developing