У меня проблемы с очисткой HTML ниже, так как вся информация хранится в структуре, которая не имеет большого различия.
Я хочу получить место, которое извлекает тег b, содержащийся в тег span с текстом = 'VIN:' и тег b, содержащийся в теге span с текстом = 'odometer:', et c ..
</p>
</div>
<p class="attrgroup">
<span><b>2001 PORSCHE 911</b></span>
<br/>
</p>
<p class="attrgroup">
<span>VIN: <b>WP0CA29961S653221</b></span>
<br/>
<span>fuel: <b>gas</b></span>
<br/>
<span>odometer: <b>46000</b></span>
<br/>
<span>paint color: <b>silver</b></span>
<br/>
<span>size: <b>sub-compact</b></span>
<br/>
<span>title status: <b>clean</b></span>
<br/>
<span>transmission: <b>manual</b></span>
<br/>
<span>type: <b>convertible</b></span>
<br/>
</p>
</div>
Я пробовал следующее варианты безрезультатны:
all = soup.find_all('section',{'class':'body'})
for i in all:
print(i.find_all('span'))
&
all = soup.find_all('section',{'class':'body'})
for i in all:
print(i.find_all('b'))
&
all = soup.find_all('section',{'class':'body'})
for i in all:
print(i.find_all('p',{'class':'attrgroup'}))
Поля являются динамическими c, поэтому структура может меняться. Например, в другом листинге может отсутствовать информация об одометре или опция топлива, поэтому разбиение ее на список и получение указанной c информации по индексу будет непоследовательным.
Как мне успешно это сделать?