Python 从HTML中的不同位置重新搜索文本

Python 从HTML中的不同位置重新搜索文本,python,beautifulsoup,re,Python,Beautifulsoup,Re,我试图写一个条件语句来搜索电子邮件: HTML中的特定位置 如果未找到,则在HTML中搜索另一个元素 未找到elif,因为它可能缺少返回值,例如“N/A” 我尝试了几种方法,但我要么收到一个错误AttributeError:“NoneType”对象没有属性“group”,要么没有得到期望的结果 下面是我正在尝试做的一个例子: email_list = [] url = input("Link") r = requests.get(url, timeout=30) so

我试图写一个条件语句来搜索电子邮件:

  • HTML中的特定位置
  • 如果未找到,则在HTML中搜索另一个元素
  • 未找到elif,因为它可能缺少返回值,例如“N/A”
我尝试了几种方法,但我要么收到一个错误
AttributeError:“NoneType”对象没有属性“group”
,要么没有得到期望的结果

下面是我正在尝试做的一个例子:

email_list = []

url = input("Link")

r = requests.get(url, timeout=30)
soup = BeautifulSoup(r.text, 'html.parser')
name_array = soup.find_all('h1', {'class': 'class1'})

bio = soup.find('div', {'class': 'UserBio'}).text
info=soup.find('div', {'class': 'UserInfo'}).text

try:
    email = re.search('\S+@\S+', bio).group()
    print(email+"bio")
except AttributeError as e:
    print(e)
try:
    email = re.search('\S+@\S+', info).group()
    print(email + "info")
except AttributeError as e:
    print(e)
print(email)
email_list.append(email)
我之所以使用Try-except,是因为生成了一个错误作为属性error

我想要的结果是:

  • 在用户简历中搜索电子邮件
  • 如果在用户个人信息中不可用,请在用户信息中搜索电子邮件
  • 如果在用户信息中无法将其附加为“不适用”
  • 如果不匹配,search()函数可以返回None。因此,如果您没有匹配项,您的搜索行将有效:

    email = None.group()
    
    在调用方法(如果不是None)之前,您需要检查搜索结果以获取电子邮件信息