比方說,我有一個頁面div
。我可以通過soup.find()
輕鬆獲得該div。BeautifulSoup innerhtml?
現在我已經得到了結果,我想要打印出div
的全部innerhtml
:我的意思是,我需要一個字符串,其中包含所有的html標籤和文本,完全像我想要的字符串用obj.innerHTML
與javascript取得聯繫。這可能嗎?
比方說,我有一個頁面div
。我可以通過soup.find()
輕鬆獲得該div。BeautifulSoup innerhtml?
現在我已經得到了結果,我想要打印出div
的全部innerhtml
:我的意思是,我需要一個字符串,其中包含所有的html標籤和文本,完全像我想要的字符串用obj.innerHTML
與javascript取得聯繫。這可能嗎?
選項之一可能是使用類似的東西:
innerhtml = "".join([str(x) for x in div_element.contents])
有,做近似DOMs innerHTML method一個未公開的函數:
def innerHTML(element):
return element.decode_contents(formatter="html")
這在目前通過了所有的測試案例。也許有人應該更新文檔?
只是unicode(x)
怎麼樣?似乎爲我工作。
編輯:這會給你外部的HTML而不是內在的。
這將返回包含外部元素的div,而不僅僅是內容。 – Arany
你說得對。現在把它留在這裏以防別人幫助別人。 –
如果你只需要文字(不包括HTML標記),那麼你可以使用.text
:
soup.select("div").text
的Unicode(x)的可能是更安全的 –
還有一些其他的問題與此有關。首先它不會在字符串元素中轉義html實體(比如大於和小於)。其次,它會寫評論的內容而不是評論標籤本身。 – ChrisD
添加另一個不使用@ChrisD註釋的原因:這將在包含非ASCII字符的內容上引發UnicodeDecodeError。 – Anthon