1

Python 3とbeautifulsoup 4を使用しているときに、すべてのテキストを同じ配置で取得するにはどうすればよいですか。forループを試しましたが、うまくいきませんでした。

from bs4 import BeautifulSoup

data = """
<body>
    <div id="Select">
        <h1 id="wall">
            First
        </h1>
    </div>

    </div>
        <div id="color_acts">
        <p id="acts_h">
        Choose
        </p>
        <p id="actshead">
        Color
        </p>
        <p id="acts">
        Blue
        </p>
    </div>

    <div id="Select">
        <h1 id="wall">
            Second
        </h1>
    </div>
    </div>
        <div id="color_acts">
        <p id="acts_h">
        Choose
        </p>
        <p id="actshead">
        Color
        </p>
        <p id="acts">
        Green
        </p>
    </div>
</body>
"""

soup = BeautifulSoup(data, "html.parser")

for Colors in soup.find_all('div', id='Select'):
    CC = Colors.find('h1').text
    print(CC)
    SS = soup.find('div', id='color_acts')
    print(SS)

私の出力:

            First

<div id="color_acts">
<p id="acts_h">
        Choose
        </p>
<p id="actshead">
        Color
        </p>
<p id="acts">
        Blue
        </p>
</div>

            Second

<div id="color_acts">
<p id="acts_h">
        Choose
        </p>
<p id="actshead">
        Color
        </p>
<p id="acts">
        Blue
        </p>
</div>

私の期待される出力:

    First

Choose
Color
Blue

    Second

Choose
Color
Green

意図した出力は青の次に緑ですが、実際の出力は青が 2 回表示されるだけです。出力を適切な色にして、html タグが印刷されないようにするにはどうすればよいですか?

4

1 に答える 1