【发布时间】:2018-08-24 07:32:16
【问题描述】:
我正在尝试抓取表格中的一些详细信息行,但我不知道如何正确访问这些信息。这是html:
<tr class="even">
<td style="background: #F5645C; color: #F5645C;">1 </td>
<td>Michael</td>
<td class="right">57</td>
<td class="right">0</td>
<td class="right">5</td>
</tr>
<tr class="odd">
<td style="background: #8FB9B0; color: #8FB9B0;">1 </td>
<td>Clara</td>
<td class="right">48</td>
<td class="right">0</td>
<td class="right">5</td>
</tr>
<tr class="even">
<td style="background: #F5645C; color: #F5645C;">1 </td>
<td>Lisa</td>
<td class="right">44</td>
<td class="right">2</td>
<td class="right">5</td>
</tr>
<tr class="odd">
<td style="background: #8FB9B0; color: #8FB9B0;">0 </td>
<td>Joe</td>
<td class="right">43</td>
<td class="right">0</td>
<td class="right">13</td>
</tr>
<tr class="even">
<td style="background: #F5645C; color: #F5645C;">1 </td>
<td>John</td>
<td class="right">38</td>
<td class="right">3</td>
<td class="right">4</td>
</tr>
<tr class="odd">
<td style="background: #F5645C; color: #F5645C;">1 </td>
<td>Francesca</td>
<td class="right">35</td>
<td class="right">2</td>
<td class="right">5</td>
</tr>
<tr class="even">
<td style="background: #8FB9B0; color: #8FB9B0;">0 </td>
<td>Carlos</td>
<td class="right">27</td>
<td class="right">1</td>
<td class="right">2</td>
</tr>
我试图获得的是在每个 td 之后出现的下一个 td 上的文本,颜色为 F5645C,但不幸的是我遇到了问题。 这就是我希望脚本返回的内容: 迈克尔 丽莎 约翰 弗朗西斯卡
这是我目前拥有的代码:
table = soup.find('table')
table_rows = table.find_all('tr')
for tr in table_rows:
td = tr.find('td', style='background: #F5645C; color: #F5645C;').find_next_sibling('td').get_text()
print(td)
在运行脚本时:AttributeError: 'NoneType' object has no attribute 'find_next_sibling'
【问题讨论】:
-
您尝试点击的
td可能不存在,因此没有下一个兄弟姐妹。样式是一个糟糕的选择器,你能不能不用class或者id? -
我不能,我复制粘贴了我拥有的确切 html...
标签: python beautifulsoup