我知道发现所有出现的具有一个属性的类都是如下。
soup.find_all('a', class_='className')
但是这并不能获得如下所示的所有标签。
soup.find_all('a', class_='class Name')
如何找到具有多属性类的美丽汤对象的所有标签,例如" class _ =' class Name'"?
答案 0 :(得分:0)
考虑这样的HTML。
<div class="one two">
this
</div>
<div class="one">
that
</div>
如果您对class
属性中“一二”的格式有信心,那么可以像下面的代码一样简单地完成。否则,您需要安排重新格式化。
>>> import bs4
>>> soup = bs4.BeautifulSoup(open('emh.htm').read(), 'lxml')
>>> def accept(item):
... return item=='one two'
...
>>>
>>> soup.find_all('div', class_=accept)
[<div class="one two">
this
</div>]
每次find_all
看到class
属性时,它都会调用accept
函数,该函数将该属性与字符串常量'one two'进行比较。如果函数返回True
,则find_all
将返回关联的元素,在本例中为div
。