Я пытаюсь прокрутить таблицу по строкам и напечатать определенные td. Я могу печатать каждую по отдельности, но я не уверен, как я могу печатать оба td, которые находятся в одной строке одновременно. Я хочу знать, где я размещаю петли for и тег печати, чтобы заставить это работать.Python: Beautifulsoup - Разбор таблицы
<div id="main">
<table>
<tbody>
<tr>
<td><span class="bold">answer</span> </td>
<td></td>
<td>
<option value="1|0|%" selected="selected">%</option>
<option value="100|0|fraction">fraction</option>
<option value="100|0|ratio">ratio</option>
</td>
</tr>
</tbody>
</table>
</div>
и моя попытка добиться этого
def summary(url, i):
html = wget(url)
soup = BeautifulSoup(html)
for row in soup.findAll('div', {'id': 'main'}):
for ops in row.findAll('tr'):
for tds1 in ops.findAll('td'):
for opt in tds1.findAll('option', {'selected': 'selected'}):
return opt
for ops in row.findAll('tr'):
for tds1 in ops.findAll('td'):
for spans in tds1.findAll('span', {'class': 'bold'}):
return spans
print (i, opt, spans)
HTML, который вы анализируете и ожидаемый результат, поможет исправить код – shaktimaan
Уверены ли вы, что вы вернули опцию в свой код? Это означало бы, что этот код никогда ничего не печатает. Также похоже, что есть проблема с отступом: уверены ли вы, что строки, начинающиеся с 'soup', отступают? –
Кроме того, что вы подразумеваете под «печатью в одной строке одновременно»? –