カスタム HTML 属性を持つ HTML タグをスクレイピングしたいケースが 2 つあります。これは HTML の例です。カスタム属性「limit」を持つすべての要素をどのようにスクレイピングしますか。
<div class="names" limit="10">Bar</div>
<div id="30" limit="20">Foo</div>
<li limit="x">Baz</li>
2番目のケースも同様ですが、HTMLタグはすべて同じです。
<div class="names" limit="10">Bar</div>
<div class="names" limit="20">Bar</div>
<div class="names" limit="30">Bar</div>
私の質問は特定の属性のみを持つタグを検索する方法 - BeautifulSoup後者は特定のタグを持つ属性値を対象としていますが、私の質問はタグや値に関係なく属性のみを検索するためです。
ベストアンサー1
# First case:
soup.find_all(attrs={"limit":True})
# Second case:
soup.find_all("div", attrs={"limit":True})
参照:
- http://www.crummy.com/software/BeautifulSoup/bs4/doc/#kwargs
- http://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all
属性名が Python キーワードやsoup.find_all
名前付き引数と衝突しない場合は、構文はよりシンプルになります。
soup.find_all(id=True)