2

background 属性が設定されている html ドキュメントからタグのリストを取得したいと考えています。

たとえば、次のようになります。

html="<div>
    <div></div>
    <table background=\"anything\">
    </table>
</div>"

soup = BeautifulSoup(html)
result = soup.findall(??)

この場合、テーブル タグをリストに含めたいと思います。"anything" の値は ... 何でもかまいません。理想的には、正規表現に基づいて背景属性の値をフィルタリングしたいと思います。

私の質問は次のとおりです: Beautiful Soup を使用して、背景属性の値が設定されているかどうかでフィルタリングされたリストを取得できますか? さらに良いことに、1 つのステップで属性に適用された正規表現に基づいてフィルタリングできますか?

4

2 に答える 2

1
import re
result = soup.findAll("", {"background": re.compile("")})

re.compileこれは、ステートメントに任意の正規表現を入れることができるため、2番目の質問にも答えます。

于 2012-11-06T19:15:18.977 に答える
1

ドキュメントに基づく:

def has_background_attribute(tag):
    return tag.has_key('background')

soup.find_all(has_background_attribute)

2番目の質問にも対処するより良い代替手段は(ドキュメント)です:

soup.find_all(background = re.compile("your_regex"))
于 2012-11-06T19:13:18.270 に答える