使用伪元素来隐藏电子邮件地址以避免被机器人抓取?

3

伪元素不是DOM的一部分,无法被JavaScript所选中,但可见于用户。

如果我想要在网站上显示我的电子邮件地址(或其他信息),但又不希望它被智能机器人自动获取,我是否可以这样实现:

<style>
.email-point::after {
    content: "cris@domain.com"
}
</style>
<span class="email-point">Email:</span>

对我而言,这是一种非常神秘和万无一失的方式来隐藏内容不被机器人发现。它会有什么失败的情况吗?
2个回答

1

我认为机器人也可能会扫描 css,然后通过正则表达式找到电子邮件,所以你可以尝试将电子邮件分成几个部分。

<span class="cris email">@</span>

.cris.email::before{
    content: "cris"
}
.email::after {
    content: "domain.com"
}

但要注意这是用户体验的罪恶,因为最终用户将无法复制地址并被迫手动输入。

True。这会降低可用性,因为读者必须自己输入。但如果它不是电子邮件地址,而是您不想被爬取的文章...也许这个方法可以奏效。 - Cris Stringfellow
你可能想在单击 span.email 时添加 JavaScript 来引导用户到 mailto:...,但是这样你需要在 JavaScript 中获取地址,例如通过从 CSS 中提取或再次编码。 - Valerij

1
用户无法通过单击电子邮件地址链接发送电子邮件给您。如果您接受这种情况,则该解决方案应该可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接