2017-07-06 48 views
0

格式化我格式化像這樣的HTML表:使用BeautifulSoup提取表<br/>標籤

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

但是,這感覺很容易受到表格形成的輕微變化。有沒有更好的或更經典的方法?

回答

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'} 
相關問題