Optimal protection is blocking parsers and the ability to copy information from the site.
The second is an easy-to-solve task, but how can you determine that the parser / bot came to the site? When entering the site, the user leaves some information about the browser and his IP, so the first thing you can do is to prohibit the entrance to the site if the browser has not transferred the keys (or what is the name that the browser sends when connecting to the server?), But the overwhelming Parser works through the browser.
Actually the question is - how can this problem be solved in theory?