我有一个关于使用其子项属性之一的条件来选择标签列表(或单个标签)的问题。具体地,给出的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
为X.text
一个子任何<tr>
。在上面的示例代码中,它提取了<tr>
标签与Table.tr.td.a.text=='Andre Jones'
和Table.tr.td.a.text=='DeAndre Jones'
。任何帮助,将不胜感激。
太好了!非常感谢你的帮助。 –
@MarkClements请标记最能帮助您的答案,以便其他人可以轻松搜索。 –
代码似乎是匹配首字母或姓氏,而不是整个名称。因此,它不仅将“安德烈琼斯”和“德安德鲁琼斯”视为相同,还包括“特伦斯”和“特伦斯萨尔斯伯里”。 –