【问题标题】:Python BeautifulSoup: wildcard attribute/id searchPython BeautifulSoup:通配符属性/id 搜索
【发布时间】:2013-01-10 12:14:57
【问题描述】:

我有这个:

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

但是,我需要 id 作为通配符搜索,因为 id 可以是 date_1date_2 等。

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    您可以提供一个可调用对象作为过滤器:

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

    或者正如@DSM 指出的那样

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

    因为 BeautifulSoup 将识别 RegExp 对象并调用其 .match() 方法。

    【讨论】:

    • 这给了我一个错误“'NoneType'对象没有属性以“开始”
    • @user984003 okies - 不知道是什么原因 - 更新帖子
    • 你也可以传递一个正则表达式,比如re.compile('date*')
    • @DSM 一直忘记那个 - 添加到帖子 - 谢谢
    • 正则表达式有效,虽然不是 lambda。谢谢。我会留下一点,看看是否有人知道原因,否则我会将它标记为正则表达式的正确。
    猜你喜欢
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 2014-03-02
    • 2014-04-28
    • 1970-01-01
    • 2016-05-22
    相关资源
    最近更新 更多