Вы можете использовать soup.find_all
, чтобы найти элементы, а затем получить доступ к значениям text
и href
:
from bs4 import BeautifulSoup as soup
import re
d = soup(html, 'html.parser')
s = [i.text for i in d.find_all('div', {'class':re.compile('title$|position$|telephone$')})]
result = [*s, d.find('div', {'class':'tshowcase-box-social'}).a['href'][7:]]
Вывод:
['FULL NAME', 'JOB TITLE', 'PHONE', 'EMAIL']
Если вы пытаетесь очистить несколько блоков контактов на странице, вы можете преобразовать приведенный выше код в функцию, которая принимает объект bs4
для очистки одного списка и выполняет итерацию по всему блоку div
s:
def get_contact(d):
s = [i.text for i in d.find_all('div', {'class':re.compile('title$|position$|telephone$')})]
return [*s, d.find('div', {'class':'tshowcase-box-social'}).a['href'][7:]]
results = [get_contact(i) for i in soup(html, 'html.parser').find_all('div', {'class':'tshowcase-inner-box'})]
Выход:
[['FULL NAME', 'JOB TITLE', 'PHONE', 'EMAIL']]