最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python利用Beautiful Soup模塊修改內(nèi)容方法示例

 更新時(shí)間:2017年03月27日 11:51:41   作者:Glumes  
Beautiful Soup是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的Python 庫。它能夠通過你喜歡的轉(zhuǎn)換器實(shí)現(xiàn)慣用的文檔導(dǎo)航、查找、修改文檔的方式。他還能夠修改HTML/XML文檔的內(nèi)容。這篇文章主要介紹了Python利用Beautiful Soup模塊修改內(nèi)容的方法,需要的朋友可以參考下。

前言

其實(shí)Beautiful Soup 模塊除了能夠搜索和導(dǎo)航之外,還能夠修改 HTML/XML 文檔的內(nèi)容。這就意味著能夠添加或刪除標(biāo)簽、修改標(biāo)簽名稱、改變標(biāo)簽屬性值和修改文本內(nèi)容等等。這篇文章非常詳細(xì)的給大家介紹了Python利用Beautiful Soup模塊修改內(nèi)容的方法,下面話不多說,來看看詳細(xì)的介紹吧。

修改標(biāo)簽

使用的示例 HTML 文檔還是如下:

html_markup="""
 <div class="ecopyramid">
 <ul id="producers">
  <li class="producerlist">
  <div class="name">plants</div>
  <div class="number">100000</div>
  </li>
  <li class="producerlist">
  <div class="name">algae</div>
  <div class="number">100000</div>
  </li>
 </ul>
 </div>
 """

修改標(biāo)簽名稱

soup = BeautifulSoup(html_markup,'lxml')
producer_entries = soup.ul
print producer_entries.name
producer_entries.name = "div"
print producer_entries.prettify()

修改標(biāo)簽屬性值

# 修改標(biāo)簽屬性
# 更新標(biāo)簽現(xiàn)有的屬性值
producer_entries['id'] = "producers_new_value"
print producer_entries.prettify()
# 標(biāo)簽添加新的屬性值
producer_entries['class'] = "newclass"
print producer_entries.prettify()
# 刪除標(biāo)簽屬性值
del producer_entries['class']
print producer_entries.prettify()

添加新的標(biāo)簽

我們可以使用 new_tag 方法來生成一個(gè)新的標(biāo)簽,然后使用 append() 、insert() 、insert_after() 、insert_before()方法來將標(biāo)簽添加到 HTML 樹中。

例如在上述的 HTML 文檔的 ul 標(biāo)簽中添加一個(gè) li 標(biāo)簽 。首先要生成新的 li 標(biāo)簽,然后將其插入到 HTML 樹結(jié)構(gòu)中 。并在 li 標(biāo)簽中插入相應(yīng)的 div 標(biāo)簽。

# 添加新的標(biāo)簽
# new_tag 生成一個(gè) tag 對(duì)象
new_li_tag = soup.new_tag("li")
# 標(biāo)簽對(duì)象添加屬性的方法
new_atag = soup.new_tag("a",href="www.example.com" rel="external nofollow" )
new_li_tag.attrs = {'class':'producerlist'}
soup = BeautifulSoup(html_markup,'lxml')
producer_entries = soup.ul
# 使用 append() 方法添加到末尾
producer_entries.append(new_li_tag)
print producer_entries.prettify()
# 生成兩個(gè) div 標(biāo)簽,將其插入到 li 標(biāo)簽中
new_div_name_tag = soup.new_tag("div")
new_div_name_tag['class'] = "name"
new_div_number_tag = soup.new_tag("div")
new_div_number_tag["class"] = "number"
# 使用 insert() 方法指定位置插入
new_li_tag.insert(0,new_div_name_tag)
new_li_tag.insert(1,new_div_number_tag)
print new_li_tag.prettify()

修改字符串內(nèi)容

修改字符串內(nèi)容可以使用 new_string()  、append() 、insert() 方法。

# 修改字符串內(nèi)容
# 使用 .string 屬性修改字符串內(nèi)容
new_div_name_tag.string = 'new_div_name'
# 使用 .append() 方法添加字符串內(nèi)容
new_div_name_tag.append("producer")
# 使用 soup 對(duì)象的 new_string() 方法生成字符串
new_string_toappend = soup.new_string("producer")
new_div_name_tag.append(new_string_toappend)
# 使用insert() 方法插入
new_string_toinsert = soup.new_string("10000")
new_div_number_tag.insert(0,new_string_toinsert)
print producer_entries.prettify()

刪除標(biāo)簽節(jié)點(diǎn)

Beautiful Soup 模塊提供了 decompose()extract() 方法來刪除節(jié)點(diǎn)。

decompose() 方法刪除節(jié)點(diǎn),不僅會(huì)刪除當(dāng)前節(jié)點(diǎn),還會(huì)把其子節(jié)點(diǎn)一塊刪除了。

extract() 方法用來從 HTML 樹中刪除節(jié)點(diǎn)或者字符串內(nèi)容。

# 刪除節(jié)點(diǎn)
third_producer = soup.find_all("li")[2]
# 使用 decompose() 方法刪除 div 節(jié)點(diǎn)
div_name = third_producer.div
div_name.decompose()
print third_producer.prettify()
# 使用 extract() 方法刪除節(jié)點(diǎn)
third_producer_removed = third_producer.extract()
print soup.prettify()

刪除標(biāo)簽內(nèi)容

標(biāo)簽可能有 NavigableString 對(duì)象或者 Tag 對(duì)象作為它的子節(jié)點(diǎn),移除所有的這些子節(jié)點(diǎn)可以使用 clear() 方法。這將會(huì)移除標(biāo)簽的所有的 .content。

修改內(nèi)容的其他方法

除了上面說到的方法,還有其他方法用來修改內(nèi)容。

insert_after()insert_before() 方法

上面的兩個(gè)方法能夠在標(biāo)簽或者字符串的前面或者后面插入一個(gè)標(biāo)簽或者字符串。方法只能接收一個(gè)參數(shù),要么是 NavigableString 對(duì)象要么是 Tag 對(duì)象。

replace_with() 方法

該方法是用一個(gè)新的標(biāo)簽或字符串內(nèi)容替代原來的標(biāo)簽或者字符串,能夠接收一個(gè)標(biāo)簽或者字符串作為輸入。

wrap()unwrap() 方法

wrap() 方法是用另一個(gè)標(biāo)簽來包裹一個(gè)標(biāo)簽或者字符串。

unwrap() 方法則和 wrap() 方法相反。

# wrap()方法
li_tags = soup.find_all('li')
for li in li_tags:
 new_div_tag = soup.new_tag('div')
 li.wrap(new_div_tag)
print soup.prettify()
# unwrap()方法
li_tags = soup.find_all("li")
for li in li_tags:
 li.div.unwrap()
print soup.prettify()

總結(jié)

以上就是關(guān)于Python使用Beautiful Soup 模塊修改內(nèi)容的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用python能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • pytorch?transforms圖像增強(qiáng)實(shí)現(xiàn)方法

    pytorch?transforms圖像增強(qiáng)實(shí)現(xiàn)方法

    這篇文章主要介紹了pytorch?transforms圖像增強(qiáng)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Python如何在for循環(huán)中同時(shí)使用兩個(gè)變量與兩個(gè)控制條件

    Python如何在for循環(huán)中同時(shí)使用兩個(gè)變量與兩個(gè)控制條件

    Python是一種廣泛使用的編程語言,其提供了許多強(qiáng)大的方法來處理代碼,Python?for循環(huán)是其中一種非常有用的方法,下面這篇文章主要給大家介紹了關(guān)于Python如何在for循環(huán)中同時(shí)使用兩個(gè)變量與兩個(gè)控制條件的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 詳解用Python處理HTML轉(zhuǎn)義字符的5種方式

    詳解用Python處理HTML轉(zhuǎn)義字符的5種方式

    本文介紹了詳解用Python處理HTML轉(zhuǎn)義字符的5種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • Python with用法實(shí)例

    Python with用法實(shí)例

    這篇文章主要介紹了Python with用法實(shí)例,本文講解了with語句的幾種使用方法和使用場(chǎng)景,需要的朋友可以參考下
    2015-04-04
  • Python常用時(shí)間操作總結(jié)【取得當(dāng)前時(shí)間、時(shí)間函數(shù)、應(yīng)用等】

    Python常用時(shí)間操作總結(jié)【取得當(dāng)前時(shí)間、時(shí)間函數(shù)、應(yīng)用等】

    這篇文章主要介紹了Python常用時(shí)間操作,包括取得當(dāng)前時(shí)間、時(shí)間函數(shù)、應(yīng)用等概念與相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • Python獲取C++中返回的char*字段的兩種思路

    Python獲取C++中返回的char*字段的兩種思路

    有時(shí)候需要獲取C++函數(shù)中返回來的不定長(zhǎng)的char*字符串,本文小編為大家找到了兩種解決問題的思路,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • ubuntu上安裝python的實(shí)例方法

    ubuntu上安裝python的實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于怎么在ubuntu安裝python的相關(guān)方法,以后需要的朋友們可以學(xué)習(xí)下。
    2019-09-09
  • python之gunicorn配置詳解

    python之gunicorn配置詳解

    這篇文章主要介紹了python之gunicorn配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Python3 re.search()方法的具體使用

    Python3 re.search()方法的具體使用

    本文主要介紹了Python3 re.search()方法的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • python使用selenium操作瀏覽器的實(shí)現(xiàn)示例

    python使用selenium操作瀏覽器的實(shí)現(xiàn)示例

    Selenium是一個(gè)模擬瀏覽器瀏覽網(wǎng)頁的工具,主要用于測(cè)試網(wǎng)站的自動(dòng)化測(cè)試工具,本文主要介紹了python使用selenium操作瀏覽器的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01

最新評(píng)論

集安市| 岳西县| 台湾省| 离岛区| 垦利县| 炉霍县| 织金县| 永福县| 成安县| 银川市| 阳原县| 思茅市| 新泰市| 屏山县| 开阳县| 定远县| 察哈| 繁峙县| 久治县| 都安| 元朗区| 江达县| 敦化市| 革吉县| 洛川县| 滁州市| 长顺县| 栖霞市| 修文县| 杭锦后旗| 宁海县| 朔州市| 营山县| 远安县| 安图县| 伊川县| 乐亭县| 乐安县| 上思县| 永川市| 大理市|