1

text=Trueタグを指定しない場合にのみ HTML タグ属性を取得する方法はありますか。

例:

html=<p class="c4">SOMETEXT</p>

私はそれをできた:

[tag.attrs for tag in soup.findAll('p')]
>>> [[(u'class', u'c1')]]

方法はありますか:

[text.attrs for text in soup.findAll(text=True)]

大いに感謝してください!

4

2 に答える 2

3

質問が明確になったので、これが必要だと思います:

[tag.attrs for tag in soup.findAll(True) if tag.string]

.findAll(True)ドキュメント内のすべてのタグを返すため、.attr空の場合でもタグがあり、タグに.stringコンテンツがある場合はフィルターされます。

于 2012-07-17T09:23:29.557 に答える
1
>>> from bs4 import BeautifulSoup as bs
>>> html = '<p class="c4">SOMETEXT</p><p class="c5"></p>'
>>> soup = bs(html)
>>> [tag.attrs for tag in soup.findAll('p') if tag.string]
[{'class': ['c4']}] 
于 2012-07-17T09:29:39.663 に答える