所以我有一张 table :
<table border="1" style="width: 100%">
<caption></caption>
<col>
<col>
<tbody>
<tr>
<td>Pig</td>
<td>House Type</td>
</tr>
<tr>
<td>Pig A</td>
<td>Straw</td>
</tr>
<tr>
<td>Pig B</td>
<td>Stick</td>
</tr>
<tr>
<td>Pig C</td>
<td>Brick</td>
</tr>
我只是想返回一个表对的 JSON 字符串,如下所示:
[["Pig A", "Straw"], ["Pig B", "Stick"], ["Pig C", "Brick"]]
但是,使用我的代码,我似乎无法摆脱 HTML 标签:
stable = soup.find('table')
cells = [ ]
rows = stable.findAll('tr')
for tr in rows[1:4]:
# Process the body of the table
row = []
td = tr.findAll('td')
#td = [el.text for el in soup.tr.finall('td')]
row.append( td[0])
row.append( td[1])
cells.append( row )
return cells
#最终,我想这样做: #h = json.dumps(单元格) #返回h
我的输出是这样的:
[[<td>Pig A</td>, <td>Straw</td>], [<td>Pig B</td>, <td>Stick</td>], [<td>Pig C</td>, <td>Brick</td>]]
最佳答案
使用 text
属性仅获取元素的内部文本:
row.append(td[0].text)
row.append(td[1].text)
关于python - 使用Beautiful soup分析python中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21591128/