這篇文章主要為大家展示了“beautifulsoup4庫怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“beautifulsoup4庫怎么用”這篇文章吧。
使用requests庫獲取HTML頁面并將其轉化成字符串后,需要進一步解析HTML頁面格式,提取有用信息,這需要處理HTML和XML的函數庫。beautifulsoup4庫,也成為BeautifulSoup庫或者bs4庫,用于解析和處理HTML和XML。需要注意的是,它不是BeautifulSoup庫。它的最大優點是能根據HTML和XML語法建立解析樹,進而高效解析其中的內容。beautifulsoup4庫采用面向對象思想實現,簡單地說,它把每個頁面當作一個對象,通過< a>.< b>()的凡是調用方法(即處理函數)。
head:HTML頁面的< head>內容
title:HTML頁面標題,在< head>之中,有< title>標記
body:HTML頁面的< body>內容
p:HTML頁面中第一個< p>內容
strings:HTML頁面所有呈現在Web上的字符串,即標簽的內容
stripped_strings:HTML頁面所有呈現在Web上的非空格字符串
BeautifulSoup屬性與HTML的標簽名稱相同,遠不止這些。
標簽對象的常用屬性:
name:字符串,標簽的名字,比如div
attrs:字典,包含了原來頁面Tag所有的屬性,比如href
contents:列表,這個Tag下所有子Tag的內容
string:字符串,Tag所包圍的文本,網頁中真是的文字,string屬性的返回值遵循如下原則:
?。?)如果標簽內部沒有其他標簽,string屬性返回其中的內容。
?。?)如果標簽內部還有其他標簽,但只有一個標簽,string屬性返回最里面標簽的內容。
?。?)如果標簽內部有超過1層嵌套的標簽,string屬性返回None(空字符串)。
BeautifulSoup其中的兩個方法(這兩個方法會遍歷整個HTML文檔,按照條件返回標簽內容):
BeautifulSboup.find_all(name,attrs,recursive,string,limit)
作用:根據參數找到對應的標簽,返回列表類型。參數如下:
name:按照tag標簽,名字用字符串形式表示,例如div、li。
attrs:按照tag標簽屬性值檢索,需要列出屬性名稱和值,采用JSON表示。
recursive:設置查找層次,只查找當前標簽下一層時使用recursive=False。
string:按照關鍵字檢索string屬性內容,采用string=開始。
limit:返回結果的個數,默認返回全部結果。
簡單地說,BeautifulSoup的find_all()方法可以根據標簽名字、標簽屬性和內容檢索并返回標簽列表,通過片段字符串檢索時需要使用正則表達式re函數庫,re時Python標準庫,直接通過importre即可使用。采用re.comlile('jquery')實現對片段字符串(如‘jquery’)的檢索。當對標簽屬性檢索時,屬性和對應的值采用JSON格式,例如:'src':re.compile('jquery'),其中,鍵值對中值的部分可以是字符串或者正則表達式。
除了find_all()方法,BeautifulSoup類還提供一個find()方法,它們的區別只是前者返回全部結果而后者返回找到的第一個結果,find_all()函數由于可能返回更多結果,所以采用列表形式:find()函數返回字符串形式。
BeautifulSoup.find(name,attrs,recursive,string)
作用:根據參數找到對應標簽,采用字符串返回找到的第一個值。
參數:與find_all()方法一樣。
以上是“beautifulsoup4庫怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。