我想从这个HTML元素中提取文本:
<a href="mailto:mail@1st-architects.com">mail@1st-architects.com</a>
all_profiles.find("a", {"???":"???"}).get_text(strip=True)
假设我有一个1000家公司的列表,每个公司都有一个href="mailto:mail@1st-architects.com"不同。
您可以组合attribute = value css选择器,使用以^开头,以$结尾的操作符来匹配指定子字符串的href
emails = [i.text for i in all_profiles.select("[href^=mailto][href$='@1st-architects.com']")]
你可以试试这样做。
此代码将打印所有<a>
的文本,href
作为电子邮件。
import re
from bs4 import BeautifulSoup
s = '''
<a href="mailto:mail@1st-architects.com">mail@1st-architects.com</a>
<a href="mailto:second_mail@2nd-architects.com">second_mail@2nd-architects.com</a>
<a href="#">Some Link</a>
<a href="mailto:mail@example.com">mail@example.com</a>
'''
soup = BeautifulSoup(s, 'lxml')
a = soup.find_all('a', attrs= {'href': re.compile(r'^mailto:')})
for i in a:
print(i.text.strip())
mail@1st-architects.com
second_mail@2nd-architects.com
mail@example.com