Reputation: 31
I have the below HTML (truncated):
<p>
Quant à Madame O., si elle a retrouvé un emploi depuis juin 2016 lui permettant de percevoir un salaire mensuel net de 1.780,50 euros (pièce 38 de l'intimée)...
</p>
<div class="faits">
<p>
Sur la résidence habituelle des enfants communs et les droits de visite et d'hébergement
</p>
</div>
<p>
Les mesures d'investigation réalisées, aussi bien l'enquête sociale que l'expertise psychologique familiale…
<div class="motifs">
La Cour observe en outre que le juge des enfants de Toulon, dans sa dernière décision en date du 31 octobre 2016 (pièce 85 de l'appelant) a ordonné, en l'absence de situation de danger, un non lieu à assistance éducative.
</div>
<div class="motifs">
Il est confirmé dans ce jugement que les enfants sont décrits comme spontanés, complices...
</div>
</p>
<p>
Par ailleurs il convient de maintenir le lien entre les enfants et leur père mais aussi d'adapter le droit de visite et d'hébergement de Monsieur Z. aux contraintes résultant de l'éloignement géographique entre les domiciles parentaux. La décision du premier juge sera donc confirmée sauf à préciser, par dispositions nouvelles, les points suivants :…
</p>
In the document I have several <div class="motifs">
and the goal is to get all the text after the last <div class="motifs">
. In other words, I want to get all text beginning from "Par ailleurs il convient..." until the end.
I located the last <div class="motifs">
this way:
last_marked = soup.find_all('div', {'class': 'motifs'})[-1]
And I got the right output from last_marked
. But how can I get all the text that appears in the HTML after last_marked
?
Upvotes: 3
Views: 1806
Reputation: 20048
There's a method exactly for that, to find all tags after a specific element, use find_all_next()
:
These methods use .next_elements to iterate over whatever tags and strings that come after it in the document.
soup = BeautifulSoup(html, "html.parser")
last_marked = soup.find_all('div', {'class': 'motifs'})[-1]
for tag in last_marked.find_all_next("p"):
print(tag)
Upvotes: 4