- Use Unicode RTL override, then put in numbers/text backwards (this is also fun for messing with web forums, but that's another story...)
- Inject zero-width characters (such as ZWSP U+200B, WJ U+2060, ZWNJ U+200C, ZWJ U+200D)
- Use intentionally broken HTML in places, to catch out some parsers (browsers won't care, some scraping parsers will)
- Occasionally don't maintain element order in HTML, use CSS tricks to make it appear in the correct places
- Add useless dummy data hidden in places using complex CSS rules
- Require JS-generated auth token using an obscure, obfuscated algorithm to download the data, which expires immediately
- Use Unicode RTL override, then put in numbers/text backwards (this is also fun for messing with web forums, but that's another story...)
- Inject zero-width characters (such as ZWSP U+200B, WJ U+2060, ZWNJ U+200C, ZWJ U+200D)
- Use intentionally broken HTML in places, to catch out some parsers (browsers won't care, some scraping parsers will)
- Occasionally don't maintain element order in HTML, use CSS tricks to make it appear in the correct places
- Add useless dummy data hidden in places using complex CSS rules
- Require JS-generated auth token using an obscure, obfuscated algorithm to download the data, which expires immediately