| It is "easy" to block scraping. Make it very costly to scrape: - Render your page using canvas and WebAssembly compiled from C, C++, or Rust. Create your own text rendering function. - Have multiple page layouts - Have multiple compiled versions of your code (change function names, introduce useless code, different implementations of the same function) so it is very difficult reverse engineer, fingerprint and patch. - Try to prevent debugging by monitoring time interval between function calls, compare local time interval with server time interval to detect sandboxes. - Always encrypt data from server using different encryption mechanisms every time. - Hide the decryption key into random locations of your code (use generated multiple versions of the code that gets the key) - Create huge objects in memory and consume a lot of CPU (you may mine some crypto coins) for a brief period of time (10s) on the first visit of the user. Make very expensive for the scrapers to run the servers. Save an encrypted cookie to avoid doing it later. Monitor concurrent requests from the same cookie. The answer is that it is possible but it will cost you a lot. |