一描函、簡(jiǎn)介
BeautifulSoup是一款用Python編寫(xiě)的解析網(wǎng)頁(yè)的模塊播掷,使用起來(lái)非常方便,下面介紹一下BeautifulSoup4剪决。
二、bs4的使用
筆者使用的是Anaconda集成的Python環(huán)境,使用conda list查看已安裝模塊里是否有beautifulsoup4
查看beautifulsoup是否安裝
這里Anaconda集成的環(huán)境已經(jīng)有了該模塊,可以直接進(jìn)行下一步
1. 導(dǎo)入模塊
from bs4 import BeautifulSoup as bs
注意這里的模塊名叫bs4,而不是全稱(后面簡(jiǎn)稱bs)
2. 定義一個(gè)變量存一段簡(jiǎn)單的html
html = """
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<title>html標(biāo)簽簡(jiǎn)介</title>
<meta charset="utf-8" />
</head>
<body>
<div class="mydiv">
<h1>網(wǎng)頁(yè)標(biāo)題</h1>
</div>
<div id="div2">
<h2 class="second">子標(biāo)題</h2>
</div>
</body>
</html>
"""
現(xiàn)在要取其中的頁(yè)面標(biāo)題,首先需要?jiǎng)?chuàng)建bs對(duì)象讀取html
soup = bs(html)#創(chuàng)建對(duì)象
print(soup.prettify())#格式化輸出內(nèi)容
3.篩選標(biāo)簽元素
lab_title = soup.find("title")
print(lab_title)
divs = soup.find("div")#獲取第一個(gè)div標(biāo)簽
divs = soup.find_all("div")#獲取所有div標(biāo)簽,返回一個(gè)可迭代對(duì)象
print(divs)
也可使用css的語(yǔ)法格式進(jìn)行篩選:
print(soup.select("div"))#根據(jù)標(biāo)簽篩選
print(soup.select(".mydiv"))#根據(jù)class篩選
print(soup.select("#div2"))#根據(jù)id篩選
print(soup.select("[class='second']"))#根據(jù)屬性進(jìn)行篩選,屬性class為值second的標(biāo)簽
print(soup.select("div > h2"))#篩選div下的h2標(biāo)簽
此種方式返回的是全部符合要求的標(biāo)簽
三、總結(jié)
以上就是BeautifulSoup4的簡(jiǎn)單使用,它還有更多實(shí)用的功能,詳見(jiàn)官方文檔:
https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh