Beautiful Soup 4 注釋怎么寫

2021-05-21 15:26 更新

?Tag? , ?NavigableString? , ?BeautifulSoup? 幾乎覆蓋了html和xml中的所有內(nèi)容,但是還有一些特殊對象.容易讓人擔(dān)心的內(nèi)容是文檔的注釋部分:

markup = "<b><!--Hey, buddy. Want to buy a used parser?--></b>"
soup = BeautifulSoup(markup)
comment = soup.b.string
type(comment)
# <class 'bs4.element.Comment'>

?Comment? 對象是一個特殊類型的 ?NavigableString? 對象:

comment
# u'Hey, buddy. Want to buy a used parser'

但是當(dāng)它出現(xiàn)在HTML文檔中時, ?Comment? 對象會使用特殊的格式輸出:

print(soup.b.prettify())
# <b>
#  <!--Hey, buddy. Want to buy a used parser?-->
# </b>

Beautiful Soup中定義的其它類型都可能會出現(xiàn)在XML的文檔中: ?CData? , ?ProcessingInstruction? , ?Declaration? , ?Doctype? .與 ?Comment? 對象類似,這些類都是 ?NavigableString? 的子類,只是添加了一些額外的方法的字符串獨享.下面是用CDATA來替代注釋的例子:

from bs4 import CData
cdata = CData("A CDATA block")
comment.replace_with(cdata)

print(soup.b.prettify())
# <b>
#  <![CDATA[A CDATA block]]>
# </b>    
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號