Поиск цветовой метки в html (Python 3) - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь извлечь элементы из таблицы, если ячейка имеет определенный цвет.Единственная проблема заключается в том, что для цветовых тегов захват цвета пока не представляется возможным.

jump = []

for tr in site.findAll('tr'):
  for td in site.findAll('td'):
    if td == 'td bgcolor':
      jump.append(td)

print(jump)

Это возвращает пустой список

Как мне получить только цвет из приведенного ниже HTML?

Мне нужно получить цвет из тега [td] (также было бы полезно получить цвет из тега [tr])

<tr bgcolor="#f4f4f4">
<td height="25" nowrap="NOWRAP">&nbsp;CME_ES&nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp;07:58:46&nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp;Connected&nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp;0&nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp;0&nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp;0&nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp;0&nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp;07:58:00&nbsp;</td>
<td height="25" nowrap="NOWRAP" bgcolor="#55aa2a">&nbsp;--:--:--&nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp;0&nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp;0&nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp;01:25:00 &nbsp;</td>
<td height="25" nowrap="NOWRAP">&nbsp; 22:00:00&nbsp;</td>
</tr>

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Как насчет этого:

jump = []

for tr in site.findAll('tr'):
  for td in site.findAll('td'):
    if 'bgcolor' in td.attrs:
      #jump.append(td)
      print(td.attrs['bgcolor'])

print(jump)
0 голосов
/ 19 ноября 2018

вы можете использовать has_attr, чтобы проверить, имеет ли элемент определенный атрибут:

if td.has_attr('bgcolor'):
    jump.append(td)

Если я неправильно прочитал ваш ответ и вы хотите найти только td s определенного цвета, используйте find_all:

tr.find_all("td", {"bgcolor": "55aa2a"}) # returns list of matches

PS: если у кого-то есть лучший фрагмент документа для has_attr, отредактируйте этот ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...