Как правильно указать парсеру класс
Пишу уже который день парсер для сайта https://prozorro.gov.ua/tender/search?query=освіта&value=10000 
Мне надо получить:'вебсайт','местонахождение','Контакты' и т.д. Но class у них у всех один. Как сделать так что бы выводились разные данные?
'title' : item.find('div', class_='tender--head--title col-sm-9').get_text(),
'mail' : item.find('a', class_='word-break').get_text(),
'naimeniv' : item.find_all('td', class_='col-sm-6'),
'city' : item.find('td', class_='col-sm-6').get_text(),
Ответы (2 шт):
Автор решения: Namerek
→ Ссылка
from bs4 import BeautifulSoup as Soup
import requests
import re
ua = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36'
# Представим что мы уже получили ссылку на страницу компании
url = 'https://prozorro.gov.ua/tender/UA-2020-08-12-001159-a'
response = requests.get(
url,
headers={
'User-Agent': ua
}
)
soup = Soup(response.content, 'html.parser')
customer_tab = soup.find('table', class_='tender--customer')
params = {
row.find('td', class_='col-sm-4').text.strip(): row.find('td', class_='col-sm-6').text.strip() for row in
customer_tab.find_all('tr')
}
title = params.get('Найменування:')
person, phone, email, *_ = re.split(r'\s*?\n\s*', params.get('Контактна особа:', '---\n---\n---'))
address = re.sub(r'\s*?\n\s*', '', params.get('Місцезнаходження:', '----'))
site = params.get('Вебсайт:', '----')
print(person, phone, email, site, address, sep='\n')
# ДВНЗ "Національна академія внутрішніх справ"
# Леся Барановська
# +380966881605
# [email protected]
# http://www.naiau.kiev.ua
# 03035, Україна, м. Київ обл., м. Київ, пл. Солом'янська, 1
Автор решения: Nobody
→ Ссылка
Как вариант можно использовать такой подход - вытащить все значения классов col-sm-4 и col-sm-6 и скрестить их (см. код):
names = [name.text.strip() for name in bs.find_all('td', class_='col-sm-4')]
vals = [val.text.strip() for val in bs.find_all('td', class_='col-sm-6')]
result = dict(zip(names, vals))
# Результат - {'Найменування:': 'відділ освіти Літинської райдержадміністрації', 'Код ЄДРПОУ:': '02141383', ...}
Дальше доставать все необходимые значения