如何利用Python爬蟲庫BeautifulSoup獲取物件(標簽)名,屬性,內容,注釋等操作下面就為大家介紹一下
一、Tag(標簽)物件
1.Tag物件與XML或HTML原生檔案中的tag相同,
from bs4 import BeautifulSoup
soup = BeautifulSoup('<b >Extremely bold</b>','lxml')
tag = soup.b
type(tag)
bs4.element.Tag
1
2.Tag的Name屬性
每個tag都有自己的名字,通過.name來獲取
tag.name
1
'b'
1
tag.name = "blockquote" # 對原始檔案進行修改
tag
1
2
<blockquote >Extremely bold</blockquote>
1
3.Tag的Attributes屬性
獲取單個屬性
tag['class']
1
['boldest']
1
按字典的方式獲取全部屬性
tag.attrs
1
{'class': ['boldest']}
1
添加屬性
tag['class'] = 'verybold'
tag['id'] = 1
print(tag)
<blockquote id="1">Extremely bold</blockquote>
1
洗掉屬性
del tag['class']
del tag['id']
tag
<blockquote>Extremely bold</blockquote>
1.Tag的多值屬性
多值屬性會回傳一個串列
css_soup = BeautifulSoup('<p ></p>','lxml')
print(css_soup.p['class'])
1
2
['body', 'strikeout']
1
rel_soup = BeautifulSoup('<p>Back to the <a rel="index">homepage</a></p>','lxml')
print(rel_soup.a['rel'])
rel_soup.a['rel'] = ['index', 'contents']
print(rel_soup.p)
['index']
<p>Back to the <a rel="index contents">homepage</a></p>
如果轉換的檔案是XML格式,那么tag中不包含多值屬性
xml_soup = BeautifulSoup('<p ></p>', 'xml')
xml_soup.p['class']
```bash
‘body strikeout’
二、可遍歷字串(NavigableString)
1.字串常被包含在tag內,使用NavigableString類來包裝tag中的字串
```bash
from bs4 import BeautifulSoup
soup = BeautifulSoup('<b >Extremely bold</b>','lxml')
tag = soup.b
print(tag.string)
print(type(tag.string))
Extremely bold
<class 'bs4.element.NavigableString'>
2.一個 NavigableString 字串與Python中的str字串相同,通過str() 方法可以直接將 NavigableString 物件轉換成str字串
unicode_string = str(tag.string)
print(unicode_string)
print(type(unicode_string))
Extremely bold
<class 'str'>
1.tag中包含的字串不能編輯,但是可以被替換成其它的字串,用 replace_with() 方法
tag.string.replace_with("No longer bold")
tag
<b >No longer bold</b>
1
三、BeautifulSoup物件 BeautifulSoup 物件表示的是一個檔案的全部內容,
大部分時候,可以把它當作 Tag 物件,它支持 遍歷檔案樹 和 搜索檔案樹 中描述的大部分的方法,
四、注釋與特殊字串(Comment)物件
markup = "<b><!--Hey, buddy. Want to buy a used parser?--></b>"
soup = BeautifulSoup(markup,'lxml')
comment = soup.b.string
type(comment)
bs4.element.Comment
1
Comment 物件是一個特殊型別的 NavigableString 物件
comment
1
'Hey, buddy. Want to buy a used parser?'
注意:很多人學Python程序中會遇到各種煩惱問題解決不了,為此小編建了個Python全堆疊免費答疑交流.裙 :624440745,不懂的問題有老司機解決里面還有最新Python教程專案可拿,,一起相互監督共同進步!
本文的文字及圖片來源于網路加上自己的想法,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/191490.html
標籤:Python
上一篇:使用Python打造一款間諜程式
