Good luck on achieving that.
You'll be more successfull in whitelisting every possible connection instead ;)
Spend some time (IMO too much) mysealf researching ASNs and publicly accessible blocklists of datacenters/crawlers.
Not an easy task.
Edit: Grammar (lol