91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中bs4有什么用

發布時間:2021-10-18 15:48:07 來源:億速云 閱讀:168 作者:小新 欄目:編程語言

這篇文章主要介紹了Python中bs4有什么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

了解bs4

bs4(Beautiful Soup)是一個可以從HTML或XML文件中提取數據的Python庫

它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式

Beautiful Soup會幫你節省數小時甚至數天的工作時間

BeautifulSoup

BeautifulSoup是bs4中非常重要的一個類
它利用html或xml文件快速生一個對象
我們可以借用該對象的方法和屬性快速獲取我們需要的數據
用法: BeatifulSoup(html, resolver)

解析器的選擇,根據不同的需求選擇響應的解析器

Python中bs4有什么用


bs4中對象的種類

首先來看一段測試代碼:
import bs4
import requests
# html測試代碼 
#只包含一個div標簽
#div中包含一個p標簽,一段文本 和 一段注釋
html ='<div class="屬性"><p>p標簽文本</p>div中文本<!--注釋代碼--></div>'

# 利用html字符串實例化BeautifulSoup對象
soup = bs4.BeautifulSoup(html,'html.parser')

# 利用.div的方式訪問節點
print(type(soup.div),'--->',soup.div) 

# 利用.class的方式訪問屬性
# 打印div節點中的元素和類型
for item in soup.div:
    print(type(item),'--->',item)
顯示結果:

Python中bs4有什么用


Beautiful Soup將復雜HTML文檔轉換成一個復雜的樹形結構
每個節點都是Python對象
所有對象可以歸納為4種 
Tag , NavigableString , BeautifulSoup , Comment .

>Tag對象
    html文檔中每一個標簽都會在BeautifulSoup中以Tag形式出現
    Tag中可以包含其他的Tag和其他部分對象
    Tag具有許多的屬性,可以用于訪問標簽或其子標簽的屬性和文本等
    例如:
            Tag.name返回標簽名
            Tag.string返回標簽中的文本信息(Tag僅包含一個文本時,多個用strings)
    Tag中的屬性通過賦值修改,會改動相應html文件中標簽

>NavigableString對象
    Tag中的字符串用NavigableString對象來包裝
    作為字符串不能被直接編輯,但可以用replace()替換
    在BeautifulSoup外調用需使用unicode()方法

>BeautifulSoup對象
    包含一個文檔的全部內容
    大多數情況下可以看作是一個大的Tag對象,支持遍歷和搜索文檔樹

>Comment 對象
    Comment對象是一個特殊的NavigableString對象
    用來包裝文檔中的注釋和特殊字符串等

根據需求匹配節點或信息

find和findall方法
適用對象:Tag  BeautifulSoup

find會返回滿足條件的第一個節點
findall方法會以列表形式返回滿足匹配條件的所有節點

Tag.find('a',) # 返回Tag中第一個a標簽節點
Tag.find('a',class_="hello") # 返回Tag中第一個class為"hello"的a標簽
Tag.find_all('p',text='p標簽文本') 
# 返回Tag中包含(string屬性為'p標簽文本'的NavigableString節點)的p標簽

獲取文本信息

string,strings ,text 屬性和 get_text()方法
以上方法都可以用于獲取文本
適用對象:
    string 適用于bs4中的全體對象 (Tag  BeautifulSoup NavigableString Comment)
    strings ,text , get_text()     適用于    Tag  BeautifulSoup
區別:

    tag.strings返回一個生成器
    可以迭代獲取tag節點及其子孫節點中所有的NavigableString節點
    返回的是每一個元素類型都是NavigebleString節點

    tag.string
    當tag的子節點只包含一個NavigebleString節點,返回該節點
    當tag只有一個子節點時,返回該子節點的string屬性的返回值
    此外均返回None

    tag.get_text()返回一個字符串
    用于捕獲該節點的所有子孫節點中的非注釋文本(即NavigebleString節點的string返回值)

    tag.text
    在bs4源碼中text是接收get_text()返回值的變量
    等同于tag.get_text()

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python中bs4有什么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富宁县| 沂水县| 手游| 当涂县| 苏尼特右旗| 自治县| 宁都县| 古浪县| 张家港市| 丰台区| 南澳县| 锡林浩特市| 麻阳| 宁安市| 名山县| 苗栗县| 汾西县| 武宁县| 禹州市| 大悟县| 濮阳市| 南丰县| 彭山县| 齐河县| 栾城县| 会东县| 忻城县| 赣州市| 通化县| 五河县| 宁津县| 兴城市| 承德县| 金乡县| 贵阳市| 乌兰浩特市| 富宁县| 樟树市| 文安县| 济南市| 思南县|