【问题标题】:Are there any function in python to click on the links to open and extract the email?python中是否有任何功能可以单击链接以打开和提取电子邮件?
【发布时间】:2021-03-29 07:23:21
【问题描述】:

我正在寻找一种从网页中提取电子邮件的工具,但特殊之处在于电子邮件不是直接在页面上,而是在页面上有一个带有链接的图标列表,每个图标都链接到一个弹出窗口在实践中手动包含电子邮件,您必须单击每个图标才能查看相关电子邮件。电子邮件没有被隐藏,也没有禁止,它们是免费的,确实它们只是为了查阅,有什么工具可以做到这一点吗? 否则我在 python 中看到了几个脚本,但没有这个功能,python 中有没有任何功能可以点击链接打开并提取电子邮件?如果你有例子那就太好了!

【问题讨论】:

  • 您是否尝试过直接转到电子邮件所在的位置并通过 ID 或类名进行选择?如果您不需要,而不是处理按钮点击和其他类似性质的事情。

标签: web-scraping python-requests html-email scrapinghub web-scraping-language


【解决方案1】:

有点难以理解您想说什么,但我知道您想从网页中检索电子邮件。如果这是您要尝试做的,那么我的以下答案涵盖了这一点,希望对您有所帮助-

Python 中的 Web 抓取电子邮件相当简单。您需要弄清楚两部分 - 第一步是如何下载网页,第二步是如何从该数据中提取电子邮件。

在 Python 中,有一个名为 requests 的简洁库,它允许您下载网站(这只是冰山一角,但这就是答案所需要的全部内容)。 requests 模块可以很方便地下载网页,如下所示:

from requests import get

url = "https://stackoverflow.com/"
html_data = get(url=url).text

之后,您现在将 HTML 数据包含在 html_data 变量中。现在进入下一步 - 解析电子邮件。我们在 Python 中拥有的另一个简洁工具是一个名为 re (also known as regex) 的模块。正则表达式(或正则表达式)是一种“语言”,它可以让 Python 在更大的字符串中找到特定的字符串。在我们的例子中,我们可以使用正则表达式语句在 HTML 数据中查找电子邮件。你可以这样做:

from re import findall

# Regex statement taken from https://emailregex.com/
print(findall(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", html_data))

上面的代码将从 HTML 数据中获取所有电子邮件并将它们打印到屏幕上。我希望这能回答你的问题!

【讨论】:

  • 好的,非常感谢您的帮助,我尽量解释得更好,通常这些脚本或工具会提取通过浏览页面可见的电子邮件,而不会提取那些在页面,但访问者可以通过单击页面元素(例如标志)来访问,然后会打开一个显示电子邮件的窗口。在实践中,您有一个页面,其中包含访问者要查看的联系人列表,必须逐个单击并打开,希望它更清晰,非常感谢您的帮助!
  • 是的,通过检查浏览器元素看不到这些电子邮件
  • @tecno78 如果在检查元素中没有看到它们,那么它们根本不在 HTML 代码中(如果您按照我的回答指定的方式请求它们,它们将不会显示。在您的在这种情况下,它们可能是通过 API 调用请求的。当您单击以获取电子邮件时,您需要检查浏览器正在发送什么请求,然后使用 requests 模块复制它。
  • 你好,你能把我链接到任何解释这个的资源,以便我可以记录我吗?或者,你不能创建一种机器人,模拟点击页面上相同类型的对象(其中“包含”电子邮件)?
猜你喜欢
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多