使用BeautifulSoup提取用<br/>标记格式化的表

2024-09-30 01:33:22 发布

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

我有一个HTML表格,格式如下:

<p>
  <strong>A</strong>1<br/>
  <strong>B</strong>2<br/>
</p>

我想用BeautifulSoup把它读入{'A': '1', 'B': '2'}格式的字典。最好的办法是什么?我成功地做了一些粗俗的事:

g = list(soup.find('p').childGenerator())
# g == [<strong>A</strong>, '1', <br/>, <strong>B</strong>, '2', </br>]
table = {g[3*i]: g[3*i+1] for i in range(int(len(g)/3))}

但这感觉很容易受到桌子结构细微变化的影响。有更好或更规范的方法吗


Tags: inbrfor字典html格式tablefind
1条回答
网友
1楼 · 发布于 2024-09-30 01:33:22

我相信你在这里发布的内容是假的,我不确定你的确切要求。这是您所需要的代码

text_content = [x for x in soup.text.split('\n') if x]
some_dict = {}
i = 0
for abc in soup.find_all('strong'):
    some_dict[abc.text] = text_content[i].replace(abc.text, '')
    i += 1

print(some_dict)

>> {'A': '1', 'B': '2'}

相关问题 更多 >

    热门问题