Я пытаюсь разобрать веб-страницу с помощью BeautifulSoup.
Дело 1:
<div class="a">
<div class="b">abc def</div>
<div class="c">123 456</div>
</div>
Случай 2:
<div class="a">
<div class="b">
"abc "
"def"
</div>
<div class="c">123 456</div>
</div>
Я хочу получить текст из класса C, используя код:
c = soup.find('div', class = 'b', text = 'abc def').next_sibling.text
В случае 1 это работает хорошо. Но в случае 2 это не работает. Для случая 2 я попытался также:
c = soup.find('div', class = 'b', text = '"abc ""def"').next_sibling.text
В обоих случаях
soup.find('div', class = 'b').text
дает мне то же значение:
abc def
Как правильно работать с Case 2?
[РЕДАКТИРОВАТЬ # 1]
Мне нужно сделать это, потому что есть несколько div с одним и тем же классом:
<div class="a">
<div class="b">abc def1</div>
<div class="c">123</div>
</div>
<div class="a">
<div class="b">abc def2</div>
<div class="c">456</div>
</div>
<div class="a">
<div class="b">
"abc "
"def3"
</div>
<div class="c">789</div>
</div>
[РЕДАКТИРОВАТЬ # 2]
Я попытался сохранить response.text в файл и увидел, что это выглядит так:
<div class="b">abc <!-- -->def3</div>
Но в Chrome это выглядит так:
<div class="b">
"abc "
"def3"
</div>
Кроме того, я не могу получить текст через re.compile, если текст внутри тега имеет вид:
<div class="b">abc m<sup>2</sup></div>