美味的汤,使用“findAll()”完全匹配

时间:2017-12-12 16:01:24

标签: python html selenium beautifulsoup

使用python(3.5),硒(3.6)和美丽的汤(4.6)来刮取网站。 用于查找某个html标记的代码如下:

descContainer=descContainers[0].findAll("div", {"class":"userHtml"})

不幸的是,我不仅找到了我的目标div:

<div class="userHtml">

还有以下div,其类名部分由感兴趣的类名组成:

<div class="cept-threadUpdate-html toggleSect-hide--collapsed userHtml space--b-2 space--h-2" data-lightbox-xhr="{"name":"thread_updates"}" data-handler="lightbox-xhr emoticon-preview">

有没有办法只找到完全匹配而不是找到以某种方式包含所述类名的所有类?

2 个答案:

答案 0 :(得分:4)

更简洁,更具可读性CSS selector

descContainers[0].select("div[class=userHtml]")

答案 1 :(得分:3)

您应该看看这个问题:BeautifulSoup webscraping find_all( ): finding exact match

答案似乎是:

descContainer = descContainers[0].find_all(lambda tag: tag.name == 'div' and 
                               tag.get('class') == ['userHtml'])