如何使用BeautifulSoup获取TR行中的TDs列表

2024-06-09 22:46:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的表,看起来像:

<tr>
<td>cell1</td>
<td>cell2</td>
</tr>
<tr>
<td>cell3</td>
<td>cell4</td>
</tr>

我正在使用Beauty soup尝试将TDs的内容映射到对象值

我正在做以下工作:

rows = soup.findAll('tr')
   for td in rows[1]:
      print(td.text)

这张照片是:

cell1
cell2
cell3
cell4

我想得到每个单元格的具体索引。例如:

print(td[0])

我得到一个错误:

KeyError: 0

如何获取每个TD的索引?


Tags: 对象内容fortrrowstdprintbeauty
2条回答

当然,当您访问td时,它已经是一个td而不是多个td,如果您想访问第一个td,请这样做:

rows[1][0]

上述代码表示访问第二行的任何第一个元素。如果只想在行中获取td,请按以下方式执行:

rows = soup.findAll('tr')
for row in rows:
    tds = row.findAll('td')
    print(tds[0])

以上代码将打印每行的第一个td

另一个解决方案

from simplified_scrapy import SimplifiedDoc
html = '''
<tr>
<td>cell1</td>
<td>cell2</td>
</tr>
<tr>
<td>cell3</td>
<td>cell4</td>
</tr>
'''
doc = SimplifiedDoc(html)
trs = doc.trs.tds.text

print (trs[0][0])

结果:

cell1

相关问题 更多 >