美丽的汤 - 类包含' a'而不是包含' b'

时间:2014-10-12 03:26:35

标签: python-2.7 beautifulsoup

使用bs4我需要找到class_=re.compile("viewLicense")但不是class_="viewLicenseDetails"的元素

以下是摘录

<tr class="viewLicense inactive"></tr>
<tr class="viewLicense"></tr>
<tr id="licenseDetails_552738" class="viewLicenseDetails"</tr>

我想要前两个tr而不想要最后一个。

有人可以帮忙,谢谢

2 个答案:

答案 0 :(得分:11)

以下内容将找到viewLicense

的每个tr标记
soup.find_all("tr", class_="viewLicense")

因此,它适用于问题中提供的文本:

>>> soup.find_all("tr", class_="viewLicense")
[<tr class="viewLicense inactive"></tr>, <tr class="viewLicense"></tr>]

但是,如果您的tr标记同时包含viewLicenseviewLicenseDetails个类,则以下内容会找到trviewLicense个标记,然后删除带viewLicenseDetails的标签:

>>> both_tags = soup.find_all("tr", class_="viewLicense")
>>> for tag in both_tags:
...     if 'viewLicenseDetails' not in tag.attrs['class']:
...             print tag

答案 1 :(得分:4)

使用CSS选择器?

results = soup.select('tr.viewLicense')