首页 > 解决方案 > 如何使用 JavaScript 查询网页中的电子邮件地址?

问题描述

我正在构建一个 Chrome 扩展程序,它应该能够提取背景页面上列出的任何电子邮件地址。

我发现使用 RegEx 扫描整个文档是一项非常昂贵的操作,并且网站崩溃。

为什么我要扫描整个文档?

请记住,该扩展程序在我没有建立的网站上运行,所以我不知道开发人员将电子邮件放在哪里。它可能在一个标签上,或者一个

标记,或者在 ... 选项是无限的。因此,我不能做一个简单的 document.getElementsByTagName() 或任何类似的查询。

我想降低操作成本的一种方法是确定电子邮件所在的 HTML 标记。我想使用 Xpath 并选择所有文本包含“@”的节点,因为“@”是一个字符所有电子邮件都有...然后,我只需将这些节点的 textContent 与我的电子邮件 RegEx 进行比较,看看是否匹配。

不过,当我使用

Xpath = //text()[包含(.,'@')]

或该表达式的任何变体,我不仅得到具有包含“@”的可见文本的节点,而且得到具有包含@的隐藏信息的节点。

底线,操作还是很费钱的,而且是后台页面崩溃。

我确实使用这个程序来获取电话号码,它工作得很好。我想这是因为扫描数值并不昂贵,因为 99% 的网站内容都是字母。

我是否正确地考虑了如何解决这个问题?有没有人有更好的选择?

标签: javascriptregexemailxpathgoogle-chrome-extension

解决方案


推荐阅读