I was wondering if there was a way to retrieve all bitcoin public addresses with a non-zero balance.
this website have all bitcoin addresses and sorted
https://bitkeys.work/?page=0 
if someone have an idea to crawl and extract the list text file

You want to crawl 524620 pages? I'm afraid it's impossible if you're using customer desktop because :
1. Each page have size about 100KB (only HTML code tag, excluding all external files) or about 50GB in total
2. If they have protection against DDoS, bot or spammer, you'd be banned before you could crawl 500K pages
IMO contacting them to ask JSON/dumped SQL data is more realistic option. But it's one good website in this case.