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

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

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

前言

其實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 方法來生成一個新的標(biāo)簽,然后使用 append() 、insert() 、insert_after() 、insert_before()方法來將標(biāo)簽添加到 HTML 樹中。

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

# 添加新的標(biāo)簽
# new_tag 生成一個 tag 對象
new_li_tag = soup.new_tag("li")
# 標(biāo)簽對象添加屬性的方法
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()
# 生成兩個 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 對象的 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é)點

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

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

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

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

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

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

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

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

insert_after()insert_before() 方法

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

replace_with() 方法

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

wrap()unwrap() 方法

wrap() 方法是用另一個標(biāo)簽來包裹一個標(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)容的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者使用python能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

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

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

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

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

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

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

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

    Python with用法實例

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

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

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

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

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

    ubuntu上安裝python的實例方法

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

    python之gunicorn配置詳解

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

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

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

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

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

最新評論

翁源县| 洞头县| 平顺县| 宁河县| 慈溪市| 永清县| 武宁县| 马公市| 岳阳市| 四川省| 汉沽区| 临城县| 常宁市| 桃园县| 兰溪市| 隆德县| 友谊县| 涿鹿县| 金秀| 衡山县| 许昌县| 杂多县| 鸡泽县| 昌乐县| 江陵县| 资源县| 东港市| 赣州市| 黄骅市| 寿阳县| 临夏县| 尼勒克县| 盘锦市| 惠州市| 南部县| 铜梁县| 桂阳县| 翁牛特旗| 泗洪县| 冀州市| 会昌县|