Python BeautifulSoup:通配符属性/ id搜索

use*_*003 24 python beautifulsoup

我有这个:

dates = soup.findAll("div", {"id" : "date"})
Run Code Online (Sandbox Code Playgroud)

不过,我需要的id是一个通配符搜索,因为id可以date_1,date_2等等.

Jon*_*nts 55

您可以提供可调用的过滤器:

dates = soup.findAll("div", {"id" : lambda L: L and L.startswith('date')})
Run Code Online (Sandbox Code Playgroud)

或者正如@DSM指出的那样

dates = soup.findAll("div", {"id" : re.compile('date.*')})
Run Code Online (Sandbox Code Playgroud)

因为BeautifulSoup将识别一个RegExp对象并调用它的.match()方法.

  • 这给了我一个错误“'NoneType' 对象没有属性开始” (2认同)
  • 你也可以传递一个正则表达式,比如`re.compile('date*')`. (2认同)