HTML-код:
<div class="jobsearch-JobMetadataHeader icl-u-xs-mb--md">
<div class="jobsearch-JobMetadataHeader-itemWithIcon icl-u-textColor--secondary icl-u-xs-mt--xs">
<div aria-label="" class="icl-IconFunctional icl-IconFunctional--location icl-IconFunctional--md"></div><span class="jobsearch-JobMetadataHeader-iconLabel">Edinburgh EH3</span></div>
<div class="jobsearch-JobMetadataHeader-itemWithIcon icl-u-textColor--secondary icl-u-xs-mt--xs">
<div aria-label="" class="icl-IconFunctional icl-IconFunctional--jobs icl-IconFunctional--md"></div><span class="jobsearch-JobMetadataHeader-iconLabel">Apprenticeship</span></div>
<div class="jobsearch-JobMetadataHeader-itemWithIcon icl-u-textColor--secondary icl-u-xs-mt--xs">
<div aria-label="" class="icl-IconFunctional icl-IconFunctional--salary icl-IconFunctional--md"></div><span class="jobsearch-JobMetadataHeader-iconLabel">£21,750 a year</span></div>
</div>
Мой код:
r = requests.get(link)
soup = BeautifulSoup(r.content, 'html.parser')
job_metadata=soup.find('div' ,class_="jobsearch-JobMetadataHeader icl-u-xs-mb--md")
try:
print(job_metadata.find_all('span')[0])#.next_element)
print(job_metadata.find_all('span')[1])#.next_element)
print(job_metadata.find_all('span')[2])#.next_element)
except:
pass
Проблема: Мои результаты не соответствуют.Иногда я получаю один результат, иногда 3. Я подозреваю, что это может быть связано с пустыми тегами div.Также я попытался нацелиться на пустой div и использовать .next_element, но безуспешно ... Div возвращаются как None, что имеет смысл.