私のクラス名が常に異なる場合は、たとえば次のようにします。
listing-col-line-3-11 dpt 41
listing-col-block-1-22 dpt 41
listing-col-line-4-13 CWK 12
通常、私はできる:
for EachPart in soup.find_all("div", {"class" : "ClassNamesHere"}):
print EachPart.get_text()
ここで扱うにはクラス名が多すぎるので、これらの多くは公開されていません。
Pythonには通常使用する「.contains」はありませんが、「in」はあります。それを組み込む方法を見つけることはできませんでしたが。
正規表現でこれを行う方法があることを願っています。再び私のPython構文は本当に私を失望させていますが、私はさまざまなものを試してきました:
regex = re.compile('.*listing-col-.*')
for EachPart in soup.find_all(regex):
しかし、それはトリックをしているようではないようです。
BeautifulSoupは CSSセレクター をサポートしており、特定の属性の内容に基づいて要素を選択できます。これには、コンテナのセレクタ*=
が含まれます。
以下は、テキスト「listing-col-」を含むdiv
属性を持つすべてのclass
要素を返します。
for EachPart in soup.select('div[class*="listing-col-"]'):
print EachPart.get_text()
ゆうはこれを試すことができます:
regex = re.compile('.*listing-col-.*')
for EachPart in soup.find_all("div", {"class" : regex}):
print EachPart.get_text()