web-dev-qa-db-ja.com

Python BeautifulSoup:ワイルドカード属性/ ID検索

私はこれを持っています:

dates = soup.findAll("div", {"id" : "date"})

ただし、iddate_1date_2などになる可能性があるため、idをワイルドカード検索にする必要があります。

26
user984003

呼び出し可能オブジェクトをフィルターとして提供できます。

_dates = soup.findAll("div", {"id" : lambda L: L and L.startswith('date')})
_

または@DSMが指摘するように

_dates = soup.findAll("div", {"id" : re.compile('date.*')})
_

beautifulSoupはRegExpオブジェクトを認識し、その.match()メソッドを呼び出します。

53
Jon Clements