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

Md.*_*sin 4 beautifulsoup python-2.7

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

这是片段,

<tr class="viewLicense inactive"></tr>
<tr class="viewLicense"></tr>
<tr id="licenseDetails_552738" class="viewLicenseDetails"</tr>
Run Code Online (Sandbox Code Playgroud)

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

请有人帮忙,谢谢

avi*_*avi 11

以下将找到trviewLicense的每个标签

soup.find_all("tr", class_="viewLicense")
Run Code Online (Sandbox Code Playgroud)

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

>>> soup.find_all("tr", class_="viewLicense")
[<tr class="viewLicense inactive"></tr>, <tr class="viewLicense"></tr>]
Run Code Online (Sandbox Code Playgroud)

但是,如果您有一个tr包含两个viewLicenseviewLicenseDetails类的标记,那么下面将找到所有tr标记,viewLicense然后删除标记viewLicenseDetails:

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