удалить 'mailto:' из селена get_attribute ('href') - PullRequest
0 голосов
/ 19 мая 2018

Я очищаю сайт и могу раскрыть атрибут 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

1 Ответ

0 голосов
/ 20 мая 2018

Вы можете попробовать метод .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
...