【问题标题】:remove 'mailto:' from selenium get_attribute('href')从 selenium get_attribute('href') 中删除 'mailto:'
【发布时间】:2018-05-19 20:49:15
【问题描述】:

我正在抓取一个网站,并且能够下拉电子邮件 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

【问题讨论】:

    标签: python selenium parsing mailto


    【解决方案1】:

    你可以试试.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
    

    【讨论】:

    • @DebanjanB 非常感谢您的友好评论和投票!我很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2022-11-28
    • 1970-01-01
    • 2021-05-07
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多