以下の(簡略化された)コードがあり、次のソースを使用しています。
<html>
<p>line 1</p>
<div>
<a>line 2</a>
</div>
</html>
soup = BeautifulSoup('<html><p>line 1</p><div><a>line 2</a></div></html>')
ele = soup.find('p').nextSibling
somehow_print_tag_of_ele_here
Eleのタグ(この場合は「div」)を取得したいと思います。しかし、私はその子供たちのタグを取得することしかできないようです。簡単なものが足りませんか? ele.tag.nameができると思いましたが、タグがNoneなので例外です。
#Below correctly prints the div element "<div><a>line 2</a></div>"
print ele
#Below prints "None". Printing tag.name is an exception since tag is None
print ele.tag
#Below prints "a", the child of ele
allTags = ele.findAll(True)
for e in allTags:
print e.name
この時点で、eleの親を取得し、次に親の子のタグを取得し、eleの上位の兄弟の数を数えて、正しい子タグまでカウントダウンする方法を検討しています。それはばかげているようです。
eleはすでにタグです。これを試してください:
soup = BeautifulSoup('<html><p>line 1</p><div><a>line 2</a></div></html>')
print(soup.find('p').nextSibling.name)
だからあなたの例ではそれはただ
print(ele.name)