从href (BeautifulSoup)中提取tex



我想从这个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

最新更新