2017-10-04 82 views
1

我想用bs4獲取兩個標記之間的HTML。有沒有辦法在美麗的湯做javascript的.innerHTML?從BeautifulSoup 4.6中的兩個HTML標記中提取HTML

這是找到類「標題」的範圍,並從中獲取文本的代碼。

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

在發現JavaScript有.innerHTML之後,我就可以通過google的方式在美麗的湯中做到這一點。我在this question找到了答案。

選擇帶有BS4的元素後,可以使用.decode_contents(formmater='html')來獲取innerHTML。

element.decode_contents(formatter="html") 
相關問題