我试图逐行遍历表并打印某些td' s。我可以单独打印每个,但我不确定如何打印同时在同一行的两个td。我想知道的是我在哪里放置for循环和print标签以使其工作。
<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)
答案 0 :(得分:0)
想想你想用英语做什么,然后找出如何将它翻译成Python。
您希望逐行,然后打印同一行中的行中的两列。您已经获得了大部分代码:
# Go row by row
for ops in row.findAll('tr'):
# Go column by column
for tds1 in ops.findAll('td'):
# Print columns on the same line
print(tds1, end=' ')
# Make sure to end each line after the last column
print()
我不知道你的所有其他代码是什么 - 为什么你要做两次外循环,为什么你要在列中搜索其他内容,为什么你&#39 ;一旦找到第一个值等,就会立即返回 - 但是print
end = ' '
与{{1}}相关的部分是您丢失的部分:这就是您打印多个内容的方式同一条线。