Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 23, 2017 19:07:03

FanTech
Зарегистрирован: 2015-11-29
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

BeautifulSoup Получение одноуровневых элементов next_sibling

Всем здравствуйте.

Помогите, пожалуйста, разобраться.
Нужно спарсить таблицу такой структуры.

 <tbody>
<tr bgcolor="#D7EFBE">
<td align="right" height="18">
22 Aug
</td>
<td align="right">
Val
</td>
<td width="45" align="center">
<a href="#" class="tooltip2">
<font color="#0000AA"><b>2</b></font>
<span>
	<div style="text-align:center;">
	<table width="100%"><tbody><tr class="trow3"><td>
	&nbsp;<font size="2"><b>Val</b></font>&nbsp;&nbsp;
	</td><td align="center">
	<font size="4" color="blue"><b>2</b></font>
	</td></tr>
	<tr class="trow3"><td>
	&nbsp;<font size="2"><b>Las</b></font>&nbsp;&nbsp;
	</td><td align="center">
	<font size="4" color="blue"><b>4</b></font>
	</td></tr></tbody></table>
	</div>
	<div style="text-align:left;">
	<br>
	<font color="blue">
	1-0&nbsp;&nbsp;
	<font color="blue">(6)</font>
	</font>
	<br>
	&nbsp;&nbsp;&nbsp;&nbsp;
	<font color="green">
	1-1&nbsp;&nbsp;
	<font color="green">(16)</font>
	</font>
	<br>
	&nbsp;&nbsp;&nbsp;&nbsp;
	<font color="green">
	1-2&nbsp;&nbsp;
	<font color="green">(25)</font> pen.
	</font>
	<br>
	&nbsp;&nbsp;&nbsp;&nbsp;
	<font color="green">
	1-3&nbsp;&nbsp;
	<font color="green">(31)</font>
	</font>
	<br>
	<font color="blue">
	2-3&nbsp;&nbsp;
	<font color="blue">(34)</font>
	</font>
	&nbsp;&nbsp;&nbsp;&nbsp;
	<font color="green">
	4&nbsp;&nbsp;
	<font color="green">(88)</font>
	</font>
	</div>
</span>
</a>
</td>
<td align="left">
<b>
Las
</b>
</td>
<td align="center">
+
</td>
<td align="center">
-
</td>
<td align="center">
-
</td>
<td align="center">
3
</td>
</tr>
</tbody>

Мне нужно получить теги <td> первого уровня. То есть те, которые принадлежат <tr bgcolor=“#D7EFBE”>.

Использую такой код. В переменной ta лежит тег <tr bgcolor=“#D7EFBE”> и все его содержимое.
Первый <td> получаю так:
 ta.td
Второй <td> получаю так:
 ta.td.next_sibling

Собственно в чем вопрос. Когда я дохожу до 3 <td> я не могу его уже получить так:
 ta.td.next_sibling.next_sibling
Потому что функция next_sibling начинает доставать <td> из тега <span>. То есть из вложенных тегов. Почему так происходит.
Как я понял из документации, функция next_sibling перемещается по одноуровневым тегам. Почему она лезет к дочерним элементам? И как мне получить текст из всех дочерних элементов <tr bgcolor=“#D7EFBE”> > <td> не затрагивая вложенные <tr> и <td> в теги <span>.

Офлайн

#2 Фев. 23, 2017 21:58:34

FanTech
Зарегистрирован: 2015-11-29
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

BeautifulSoup Получение одноуровневых элементов next_sibling

Тему можно закрывать. Вопрос решил.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version