如何仅使用属性值来匹配内容?

时间:2018-06-29 10:44:43

标签: python beautifulsoup

我正在尝试仅将内容与属性值匹配。例如以下我拥有的数据

<div id='cont'>blablabla</div>

<span class='cont newClass'>blablabla</div>

<someothertag name='cont'>blablabla</div>

从上面我想匹配所有包含attrvalue cont

的标签

要匹配我使用过RegEx的任何标签,如下所示

soup.find_all(re.compile(r'.*'),{"class":re.compile(r".*cont.*")}):
               --------------             ------------------------
                Match any tag              match with the string cont     

但是我不知道如何使属性名称的正则表达式表示class,id,name,etc.

如果假设我将使用纯正则表达式,它将与值不匹配,如下所示

re.findall(r'<[^>]*cont[^>]*>.+?<\/\1>',str(soup))

1 个答案:

答案 0 :(得分:3)

我认为不可能马上做到。您可以将回调传递给 <div class="formLink">Download now <i class="arrow"></i></div><br> <input type="submit" value="Send Message" class="hs-button primary large formLink" data-reactid=".hbspt-forms-0.4.1.0"><i class="new"></i></input>并在那里进行处理。这样的东西(未经测试):

find_all