8

次の性質の複雑な html DOM ツリーがあります。

<table>
    ...
    <tr>
        <td>
            ...
        </td>
        <td>
            <table>
                <tr>
                    <td>
                        <!-- inner most table -->
                        <table>
                            ...
                        </table>

                        <h2>This is hell!</h2>
                    <td>
                </tr>
            </table>
        </td>
    </tr>
</table>

最も内側のテーブルを見つけるためのロジックがあります。しかし、それを見つけた後、次の兄弟要素 (h2) を取得する必要があります。とにかくこれを行うことができますか?

4

2 に答える 2

10

tagが最も内側のテーブルの場合、

tag.findNextSibling('h2')

になります

<h2>This is hell!</h2>

文字通り次の兄弟を取得するには、を使用できます。tag.nextSiblingこの場合は、ですu'\n'

NavigableStringではない次の兄弟(などu'\n')が必要な場合は、次を使用できます。

tag.findNextSibling(text=None)

2番目の兄弟が必要な場合(それが何であれ)、次を使用できます

tag.nextSibling.nextSibling

(ただしtag、次の兄弟がいない場合は、tag.nextSiblingになりNonetag.nextSibling.nextSiblingが発生することに注意してくださいAttributeError。)

于 2010-04-10T13:44:50.280 に答える
1

すべてのタグ オブジェクトには、nextSibling探しているものとまったく同じ属性があります。つまり、次の兄弟 (またはNone、もちろん、親タグの最後の子であるタグ) です。

于 2010-04-10T16:42:23.340 に答える