使用bs4
我需要找到class_=re.compile("viewLicense")
但不是class_="viewLicenseDetails"
的元素
以下是摘录
<tr class="viewLicense inactive"></tr>
<tr class="viewLicense"></tr>
<tr id="licenseDetails_552738" class="viewLicenseDetails"</tr>
我想要前两个tr而不想要最后一个。
有人可以帮忙,谢谢
答案 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
标记同时包含viewLicense
和viewLicenseDetails
个类,则以下内容会找到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
答案 1 :(得分:4)
使用CSS选择器?
results = soup.select('tr.viewLicense')