How to avoid being scraped?

Since there is obviously a demand for your database, have you thought about turning it around and providing what the scrapers want? Form a business connection with the scrapers and encourage appropriate use with an API?


There is some good info in How do you stop scripters from slamming your website hundreds of times a second?


You could make it a bit more difficult by retrieving the records via AJAX, and using an authentication ID (like an API key) for the AJAX calls.

Of course you can get around this by reading the ID and then making the AJAX request using that.

Rendering with Flash is an alternative as you point out (though still not 100% unscrapable), as is rendering in PDF.