Поиск BeautifulSoup после текста, необходимо получить все данные из строки таблицы - PullRequest
0 голосов
/ 07 июня 2018

У меня есть такая таблица:

<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 строк в том же формате.Я хочу выполнить поиск по длинному идентификатору, а затем найти эту строку таблицы и получить IP-адрес и имя.

Например, поиск после: 0x0110000105DAB310 Затем найти конкретную строку таблицы, в которой существует этот тексти возьмите остальную информацию, такую ​​как: 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')

Это показывает мне тд, но я не знаю отсюда, что делать.

1 Ответ

0 голосов
/ 07 июня 2018

Один из подходов заключается в использовании 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 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...