javascript - 如何使用 JavaScript 查询网页中的电子邮件地址?
问题描述
我正在构建一个 Chrome 扩展程序,它应该能够提取背景页面上列出的任何电子邮件地址。
我发现使用 RegEx 扫描整个文档是一项非常昂贵的操作,并且网站崩溃。
为什么我要扫描整个文档?
请记住,该扩展程序在我没有建立的网站上运行,所以我不知道开发人员将电子邮件放在哪里。它可能在一个标签上,或者一个
标记,或者在 ... 选项是无限的。因此,我不能做一个简单的 document.getElementsByTagName() 或任何类似的查询。
我想降低操作成本的一种方法是确定电子邮件所在的 HTML 标记。我想使用 Xpath 并选择所有文本包含“@”的节点,因为“@”是一个字符所有电子邮件都有...然后,我只需将这些节点的 textContent 与我的电子邮件 RegEx 进行比较,看看是否匹配。
不过,当我使用
Xpath = //text()[包含(.,'@')]
或该表达式的任何变体,我不仅得到具有包含“@”的可见文本的节点,而且得到具有包含@的隐藏信息的节点。
底线,操作还是很费钱的,而且是后台页面崩溃。
我确实使用这个程序来获取电话号码,它工作得很好。我想这是因为扫描数值并不昂贵,因为 99% 的网站内容都是字母。
我是否正确地考虑了如何解决这个问题?有没有人有更好的选择?
解决方案
推荐阅读
- android - 如何在不验证(登录/注册)用户的情况下保护 Firebase 实时数据库?
- django - Django-rest-framework 性能问题
- python - 查找数据框所有列的唯一值
- ssl - curl --cacert 错误“curl:(60)SSL:没有替代证书主题名称与目标主机名匹配”
- python - 由于“不可见”字符,如何将列转换为带有错误的数字
- r - 在 R 会话中检查 DLL 而不加载它
- azure - 如何预先检测 Azure ARM 脚本是否会更改 customData?
- javascript - 无法访问节点 js 中 express.session 的 loggedIn 值
- java - 使用 ASM 访问一个类时,如何在不加载任何类的情况下知道该类的祖先类?
- python - 在多边形内绘图