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

时间:2017-07-06 17:17:25

标签: python html beautifulsoup

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

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

我想使用BeautifulSoup将其读入格式{'A': '1', 'B': '2'}的字典中。最好的方法是什么?我设法做了一些hacky:

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))}

但这种感觉很容易受到桌子形成的微小变化的影响。是否有更好或更规范的方式?

1 个答案:

答案 0 :(得分:0)

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

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'}