Beautiful Soup 4 注釋怎么寫(xiě)

2021-05-21 15:26 更新

?Tag? , ?NavigableString? , ?BeautifulSoup? 幾乎覆蓋了html和xml中的所有內(nèi)容,但是還有一些特殊對(duì)象.容易讓人擔(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? 對(duì)象是一個(gè)特殊類型的 ?NavigableString? 對(duì)象:

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

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

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

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

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)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)