What I would do on Linkedin side is:
1. Split public setting into 2 settings: public for everyone including scraping, and second choice that make it public for Linkedin users (aka banning scraping [1])
2. Everyone on Linkedin who have current setting public would go though dialog to choose which one, with default setting to ban scraping (which is hard to criticize, since that option is protecting privacy more).
3. If you allow scraping, the form should warn you about consequences, and make you to acknowledge them (which is again a good practice, if you want to expose your information to EVERYONE on the internet).
4. Now you have users consent to protect their data from scraping.
Sounds like dark pattern? Kind of yes, but for good thing and it's hard to argue against it, since it increases privacy.
[1] Idea here is that I can allow anyone on Linkedin to see my profile, whether it is potential employer, or someone who met me at the conference (i.e. to improve my Linkedin experience). But I do not want that data to be harvested, by third party for any reason (specially, because they would then use it to to send me spam / advertising / prefill my profile on different website / ...).
edit: formatting