gpt4 book ai didi

python - BeautifulSoup,来自 HTML 表格的字典

转载 作者:太空狗 更新时间:2023-10-29 17:38:35 24 4
gpt4 key购买 nike

我正在尝试从网站上抓取表格数据。

这是一个简单的示例表:

t = '<html><table>' +\
'<tr><td class="label"> a </td> <td> 1 </td></tr>' +\
'<tr><td class="label"> b </td> <td> 2 </td></tr>' +\
'<tr><td class="label"> c </td> <td> 3 </td></tr>' +\
'<tr><td class="label"> d </td> <td> 4 </td></tr>' +\
'</table></html>'

期望的解析结果是{'a':'1','b':'2','c':'3','d':'4'}


这是我迄今为止最接近的尝试:

for tr in s.findAll('tr'):
k, v = BeautifulSoup(str(tr)).findAll('td')
d[str(k)] = str(v)

结果是:

{'<td class="label"> a </td>': '<td> 1 </td>', '<td class="label"> d </td>': '<td> 4 </td>', '<td class="label"> b </td>': '<td> 2 </td>', '<td class="label"> c </td>': '<td> 3 </td>'}

我知道 findAll()text=True 参数,但我在使用它时没有得到预期的结果。

我正在使用 python 2.6 和 BeautifulSoup3。

最佳答案

试试这个:

from BeautifulSoup import BeautifulSoup, Comment

t = '<html><table>' +\
'<tr><td class="label"> a </td> <td> 1 </td></tr>' +\
'<tr><td class="label"> b </td> <td> 2 </td></tr>' +\
'<tr><td class="label"> c </td> <td> 3 </td></tr>' +\
'<tr><td class="label"> d </td> <td> 4 </td></tr>' +\
'</table></html>'

bs = BeautifulSoup(t)

results = {}
for row in bs.findAll('tr'):
aux = row.findAll('td')
results[aux[0].string] = aux[1].string

print results

关于python - BeautifulSoup,来自 HTML 表格的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11901846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com