美丽的汤,用Findall消除某些物品()

时间:2017-02-28 13:54:12

标签: python selenium web-scraping beautifulsoup

我有一系列由find_all()

返回的列表项
<li class="rsltItem" mh-property-list-item="".......

该项目有很多嵌套元素。

每隔一段时间,其中一个略有不同:

<li class="rsltItem adv" in-view="vm.lazyLoadAd('adMiddle',$inview)" ng-if="$index == 5"><!----></li>

这个嵌套元素较少,不同。我想消除第二种类型。

我已经尝试在li的特定类上搜索,但即使它们不同,它也会返回它们:

soup.find_all("li", {"class" : "rsltItem"})

我是如何从结果中排除第二个列表项的?

2 个答案:

答案 0 :(得分:2)

仅查找与特定类<li>匹配的标记rsltItem

soup.find_all(lambda tag: tag.name == 'li' and tag.get('class') == ['rsltItem'])

答案 1 :(得分:0)

result_list = [tag for tag in soup.find_all('li', {'class': 'rsltItem'}) 
if tag['class'] == ['rsltItem']]

result_list = [tag for tag in soup.find_all('li', {'class': 'rsltItem'}) 
if len(tag['class']) == 1]