首页 > 解决方案 > 从 selenium get_attribute('href') 中删除 'mailto:'

问题描述

我正在抓取一个网站,并且能够下拉电子邮件 href 属性,但所有电子邮件都包含 mailto: 标签。例如,我希望电子邮件 mailto:john@gmail.com 只是 john@gmail.com。我搜索了堆栈并找到了几个正则表达式解决方案,但无法实现它们。在 Python 3.6 中,导入重新保持灰色。现在看来这必须是一个默认库,但它不起作用。我也尝试过更改 XPATH,但不清楚如何渲染 XPATH,因为 Selenium 显然不允许您这样做。

这是我的代码:

try:
    element = "//div[@class='business-buttons']/a[1]"
    email_el = driver.find_element(By.XPATH, element)
    email = email_el.get_attribute("href")
 except NoSuchElementException:
    print("Handled NoSuchElementException no email")
    pass

标签: pythonseleniumparsingmailto

解决方案


您可以尝试方法.replace()

email.replace("mailto:", "")

如果您有一个已抓取的电子邮件列表,您可以.replace()循环使用:

email_list = ['mailto:john@gmail.com','mailto:john2@gmail.com','mailto:john3@gmail.com']
for item in email_list:
    item = item.replace("mailto:", "")
    print(item)

输出:

john@gmail.com
john2@gmail.com
john3@gmail.com

推荐阅读