Я использую BeautifulSoup для разбора списков компаний с сайтов ВК.Я нашел правильные элементы для итерации, но я не могу получить данные о самих этих элементах.
Вот пример HTML-кода, через который я прохожу:
<div id="content" class="site-content">
<main id="primary" class="content-area" role="main">
<header class="page-header">
<main id="portfolio-landing-company-list" class="page-content">
<section id="portfolio__list--grid" class="portfolio__list--all">
<div class="company company-stage--venturegrowth company-type--enterprise company--single-company">
<div class="company__thumbnail company__thumbnail-link">
<a href="http://www.domain1.com" title="Company1" target="_blank">
</div>
</div>
<div class="company company-stage--seed company-type--bio company--single-company">
<div class="company__thumbnail company__thumbnail-link">
<a href="http://www.domain2.com" title="Company2" target="_blank">
</div>
</div>
Вот как я сейчас использую BeautifulSoup и эта часть прекрасно работает :
portfolio = soup.find('div', attrs={'class': 'portfolio-tiles'})
for eachco in portfolio.find_all('article'):
companyname = eachco.a['title']
companyurl = eachco.a['href']
Но я хочу взять отсюда элементы класса :
<div class="company company-stage--venturegrowth company-type--enterprise company--single-company">
or
<div class="company company-stage--seed company-type--bio company--single-company">
(для каждой компании в списке несколько вариантов)
Я пробовал перебирать с помощью:
portfolio = soup.find('div', attrs={'class': 'portfolio-tiles'})
for eachco in portfolio.find_all('article'):
companyattributes = eachco.div['class']
, но это выплевывает строкииз:
['company__thumbnail', 'company__thumbnail-link']
(он же, уровень ниже того, что я ищу)
Как я могу перебрать все результаты, но получить элементы класса для каждого результата? Я чувствую, что упускаю что-то действительно простое, но был бы признателен за любую помощь в выяснении, что это за вещь!
ОБНОВЛЕНИЕ
Я закончил тем, что пошел сследующий, который заставил все работать вместе:
portfolio = soup.find_all('div', class_=re.compile("company company-"))
for eachco in portfolio:
coname = eachco.a['title']
courl = eachco.a['href']
cotypes = eachco['class']
costage = cotypes[1]
comarket = cotypes[2]