フォーラムスレッドからすべての投稿を取得しようとしています。ほとんどの投稿はすべて正常に機能しますが、投稿が返信で元のメッセージが含まれている場合は返信できません。私はsoup.findAll(...)がHTMLソースからすべての子を返さないことを発見しました(下の画像参照)。 (:SI-SI JE suisのLà... 'P' タグで)画像2のHTMLからの私は、私はまた、以下の何を取得する必要BeautifulSoup - findAll()はすべての子孫を返しません
<b>Citation :</b><br/>
を取得します。実際には、私はこの 'p'タグにあるものだけを必要としています。あなたの助けのための
import requests
from bs4 import BeautifulSoup as bsoup
site_source = requests.get("http://forum.doctissimo.fr/sante/audition/acouphene-mouvement-secouant-sujet_152572_1.htm").content
soup = bsoup(site_source, "html.parser")
# Get text from forum posts
post_boxes = soup.findAll("td", class_="messCase2", style="border-bottom:0")
for post_box in post_boxes:
message = post_box.find("div", itemprop="text")
for line in message:
print(line)
Picture: new post (the parsing works)
感謝。
ありがとうございました!私はこれを初めて知ったので、BeautifulSoupについていくつかの基本的なことが不足しています。あなたの説明は非常に明確です。私は私のプロジェクトのために、私は '手動で'階層を繰り返し、文字列オブジェクトをチェックするので、私はこれらを保持すると思います。 –
あなたは大歓迎です。不正な形式のHTMLは、うまく動作する苦労です。この回答があなたの質問を解決した場合は、回答の左側にあるチェックマークをクリックして受け入れてください。 –