搜索文本后,需要从选项卡获取所有数据

2024-10-02 10:32:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张这样的桌子:

<table id="test" class="tablesorter">
<tr class="even">
  <td style="background: #F5645C; color: #F5645C;">1&#160;</td>
  <td>Major Lazer</td>
  <td class="right">64</td>
  <td>93.1.15.107</td>
  <td>0x0110000105DAB310</td>
  <td class="center">No</td>
  <td class="center">No</td>
</tr>

<tr class="odd">
  <td style="background: #8FB9B0; color: #8FB9B0;">0&#160;</td>
  <td>Michael gunin</td>
  <td class="right">64</td>
  <td>57.48.41.27</td>
  <td>0x0110000631HDA213</td>
  <td class="center">No</td>
  <td class="center">No</td>
</tr>

...

</table>

此表有100多行,格式相同。我要做的是搜索长id,然后找到表行并获取IP和名称。你知道吗

例如,搜索:0x011000105DAB310 然后找到这个文本所在的特定表行,并获取其余信息,如:Major Lazer和93.1.15.107

table = playerssoup.find('table')
table_rows = table.find_all('tr')
for tr in table_rows:
  td = tr.find('td', text='0x0110000101517CC6')

这是td,但我不知道该怎么办。你知道吗


Tags: norightidstyletablefindtrclass
1条回答
网友
1楼 · 发布于 2024-10-02 10:32:05

一种方法是使用find_previous_sibling('td')

例如:

for tr in table_rows:
    td = tr.find('td', text='0x0110000105DAB310')
    if td is not None:
        print( td.find_previous_sibling('td').text )
        print( td.find_previous_sibling('td').find_previous_sibling('td').find_previous_sibling('td').text )

相关问题 更多 >

    热门问题