In realtà hai diversi metodi, dovresti ovviamente considerare che tali bot che raccolgono questo contenuto stanno essenzialmente raschiando le pagine che incontrano e cercando pattern che assomigliano a indirizzi email. Come dici tu, è un po 'una corsa agli armamenti e non c'è nulla che impedisca alle persone che sviluppano tali scraper di implementare questi metodi (aspetta, è per quello che stai chiedendo?)
Nella maggior parte dei casi eviterete di creare un collegamento ipertestuale dal vostro indirizzo e-mail, e certamente volete evitare di usare mailto: - che fondamentalmente sta annunciando a chiunque legga la pagina " hey, sono un indirizzo email ".
Iniziamo con una spaziatura semplice e semplice:
m y e m a i l @ m y d o m a i n . c o m
Ovviamente è un indirizzo email per un umano, sembra un gruppo di lettere casuali con spazi per un raschietto. Non ti piace la spaziatura? Molto meno comune ma molto più infallibile è quello di convertire il tuo indirizzo email in un'immagine. È ancora leggibile dall'uomo, ma non sarà qualcosa che la maggior parte degli e-mail sta cercando, per non parlare dell'analisi.
Che ne dici di convertire la tua punteggiatura (@ e punto) nei loro equivalenti HTML ( @
e .
rispettivamente)?
myemail@mydomain.com
Questo sembra ancora un indirizzo email quando viene eseguito il rendering dal browser, ma non sarà così difficile da aggirare dal punto di vista dello scraping dato che dovresti solo cercare .
e @
- ma perché fermarsi qui? Perché non andare fino in fondo e basta codificare l'intero indirizzo email? Questo può essere fatto abbastanza facilmente con uno strumento come Encoder Mailto di Rumkin , improvvisamente il tuo indirizzo email assomiglia a questo:
myema%69l@my%64%6fma%69n%2e%63om
Questo rende ancora come ci si aspetterebbe da un browser, ma è fondamentalmente senza senso per quanto riguarda qualsiasi raschietto che non prenda in considerazione la codifica.
Puoi farlo anche con i CSS se sei così propenso a qualcosa del genere:
<style>
my-email::after { content: attr(data-domain); }
my-email::before { content: attr(data-user); }
</style>
<my-email data-user="myemail" data-domain="mydomain.com">@</my-email>
Oppure, come già discusso su Stack Overflow , puoi semplicemente utilizzare JavaScript.