В файле html есть две копии всех электронных писем (одна в тексте, а другая в атрибуте href
). Вот пример этого случая:
<a href="mailto:micah.washington@uta.edu" class="uta-btn uta-btn-ghost">
<span>micah.washington@uta.edu</span>
</a>
Стандартным способом было бы использовать парсер, чтобы получить только текст html, а не атрибуты / теги. Но здесь самый простой способ - это напечатать любой другой элемент:
for item in pdata[::2]:
print(item)
А вот более стандартный способ сделать это, используя парсер BeautifulSoup html, где div.text
извлекает текст html и удаляет теги и атрибуты:
from re import findall
import urllib.request
from bs4 import BeautifulSoup as bs
url = "https://www.uta.edu/academics/schools-colleges/business/admissions-and-advising/cob-advising"
print("Email addresses for advisors:")
response = urllib.request.urlopen(url)
div = bs(response, 'html5lib')
pdata = findall(r"[A-Za-z0-9._%+-]+"
r"@[A-Za-z0-9.-]+"
r"\.[A-Za-z]{2,4}", div.text)
for item in pdata:
print(item)