在Python中使用BeautifulSoup查找html标记


问题内容

我想在html代码中找到一个特定的标签,例如是否有2个标签,那么我如何获取第二个标签的内容,而不是汤.find(id
=’contact1’)在这里做的第一个标签的示例html码

<table align="center"><th id="contact">STUDENT ID</th><th id="contact">NAME</th><th id="contact">   Phone </th><th id="contact"> NO.</th>
<p align="center" style="display:compact; font-size:18px; font-family:Arial, Helvetica, sans-serif; color:#CC3300">
</p><tr>
<td id="contact1">
2011XXA4438F </td> <td id="contact1"> SAM SRINIVAS KRISHNAGOPAL</td> <td id="contact1"> 9894398690 </td> <td id="contact1"> </td>
</tr>
</table>

我想做的是将“ 2011XXA4438F”提取为字符串,我该怎么做?


问题答案:

<td id="contact1">是ID为的 第一个 标签"contact1"。要获得它,那么soup.find您只需要:

>>> print soup.find(id='contact1').text.strip()
2011XXA4438F

如果您正在寻找其他标签,则需要使用find_all

>>> print soup.find_all(id='contact1')
[<td id="contact1">
2011XXA4438F </td>, <td id="contact1"> SAM SRINIVAS KRISHNAGOPAL</td>, <td id="contact1"> 9894398690 </td>, <td id="contact1"> </td>]