3
は言うことができますか?すなわち:[「クラス1」、「クラス2」、「Class3に」、「CLASS4」]のPython、美しいスープ、すべてのクラス名を取得
私が試した:
soup.find_all(class_=True)
しかし、それは全体のタグを取得し、私は、文字列の上にいくつかの正規表現を行う必要があります
は言うことができますか?すなわち:[「クラス1」、「クラス2」、「Class3に」、「CLASS4」]のPython、美しいスープ、すべてのクラス名を取得
私が試した:
soup.find_all(class_=True)
しかし、それは全体のタグを取得し、私は、文字列の上にいくつかの正規表現を行う必要があります
属性を取得することについては、treat each Tag
instance found as a dictionaryとすることができます。 class
属性値がclass
以来リストになることに注意することは、特別な"multi-valued" attributeです:
classes = []
for element in soup.find_all(class_=True):
classes.extend(element["class"])
または:
classes = [value
for element in soup.find_all(class_=True)
for value in element["class"]]
デモ:
In [1]: from bs4 import BeautifulSoup
In [2]: data = """
...: <div class="class1">
...: <span class="class2">some text</span>
...: <span class="class3">some text</span>
...: <span class="class4">some text</span>
...: </div>"""
In [3]: soup = BeautifulSoup(data, "html.parser")
In [4]: classes = [value
...: for element in soup.find_all(class_=True)
...: for value in element["class"]]
In [5]: print(classes)
['class1', 'class2', 'class3', 'class4']