从BeautifulSoup 4.6中的两个HTML标记之间提取HTML

时间:2017-10-04 19:06:23

标签: python-2.7 web-scraping beautifulsoup

我想用bs4获取两个标签之间的HTML。有没有办法在美丽的汤中做javascript' s .HTMLHTML?

这是找到类" title"的跨度的代码,并从中获取文本。

def get_title(soup):
title = soup.find('span', {'class': 'title'})
return title.text.encode('utf-8')

此函数错误地返回没有下标的跨度文本。 'Title about H2O and CO2'

以下代码是title = soup.find('span', {'class': 'title'})

的结果
<span class="title">Title about H<sub>2</sub>O and CO<sub>2</sub></span>

如何在没有原始范围的情况下获得结果?

期望的结果:'Title about H<sub>2</sub>O and CO<sub>2</sub>'

1 个答案:

答案 0 :(得分:1)

在发现JavaScript有.innerHTML后,我能够以美妙的方式谷歌。我在this question找到了答案。

使用BS4选择元素后,您可以使用.decode_contents(formmater='html')获取innerHTML。

element.decode_contents(formatter="html")