【发布时间】:2019-07-04 11:52:37
【问题描述】:
Here 是包含电子邮件地址的示例 Web 地址。 这是我正在使用的代码:
from bs4 import BeautifulSoup
import requests
import re
url = 'https://viterbi.usc.edu/directory/faculty/Zadeh/Ali-Enayat'
page_response = requests.get(url, timeout=5)
soup = BeautifulSoup(page_response.content, "html.parser")
email = re.findall(r"[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.[a-z]+", soup.text)
print(email)
我希望它返回 azadeh@usc.edu 作为电子邮件地址,但它返回 740-4694azadeh@usc.edu。我做错了什么,如何解决这个问题,以便电子邮件提取适用于任何网页?
【问题讨论】:
-
告诉我们
740-4694和azadeh@usc.edu之间应该有边界的逻辑是什么?不知道这一点,我们无法真正帮助您。 -
如果我查看页面来源,我会看到:
联系信息
- (213) 740-4694
- azadeh@usc.edu 很明显有一些界限。这有帮助吗?
-
请不要使用正则表达式来解析 HTML,那是邪恶的。请改用 HTML/XML 解析器。