【发布时间】:2013-12-09 17:22:03
【问题描述】:
我有一个关于使用其子项属性之一的条件选择标签列表(或单个标签)的问题。具体来说,给定 HTML 代码:
<tbody>
<tr class="" data-row="0">
<tr class="" data-row="1">
<tr class="" data-row="2">
<td align="right" csk="13">13</td>
<td align="left" csk="Jones,Andre"><a href="/players/andre-jones-2.html">Andre Jones</a>
</td>
<tr class="" data-row="3">
<td align="right" csk="7">7</td>
<td align="left" csk="Jones,DeAndre"><a href="/players/deandre-jones-1.html">DeAndre Jones</a>
</td>
<tr class="" data-row="4">
<tr class="" data-row="5">
我有一个来自外部循环的 unicode 变量,我试图查看表中的每一行以提取带有Player==Table.tr.a.text 的<tr> 标记,并在Table 中识别重复的玩家名称。因此,例如,如果有多个玩家使用Player=Andre Jones,则MyRow 对象返回所有包含该玩家名称的<tr> 标签,而如果只有一行带有Player=Andre Jones,则MyRow 只是包含单个元素<tr>,其锚文本属性等于Andre Jones。我一直在尝试类似
Table = soup.find('tbody')
MyRow = Table.find_all(lambda X: X.name=='tr' and Player == X.text)
但这会为MyRow 返回[]。如果我使用
MyRow = Table.find_all(lambda X: X.name=='tr' and Player in X.text)
这将选择任何具有Player 的<tr> 作为X.text 的子字符串。在上面的示例代码中,它使用Table.tr.td.a.text=='Andre Jones' 和Table.tr.td.a.text=='DeAndre Jones' 提取<tr> 标签。任何帮助将不胜感激。
【问题讨论】:
标签: python python-2.7 beautifulsoup