日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

Python爬蟲(chóng)神器:Beautiful Soup指南,輕松解析網(wǎng)頁(yè)數(shù)據(jù)!

來(lái)源: 責(zé)編: 時(shí)間:2023-11-28 09:32:53 215觀看
導(dǎo)讀Beautiful Soup(簡(jiǎn)稱BS4)是一種強(qiáng)大而靈活的HTML和XML解析庫(kù),廣泛用于Python爬蟲(chóng)和數(shù)據(jù)采集中。這篇文章介紹 Beautiful Soup的功能和用法,并提供示例代碼,幫助你更好地理解和應(yīng)用這個(gè)優(yōu)秀的庫(kù)。一、Beautiful Soup簡(jiǎn)介1、

2BK28資訊網(wǎng)——每日最新資訊28at.com

Beautiful Soup(簡(jiǎn)稱BS4)是一種強(qiáng)大而靈活的HTML和XML解析庫(kù),廣泛用于Python爬蟲(chóng)和數(shù)據(jù)采集中。2BK28資訊網(wǎng)——每日最新資訊28at.com

這篇文章介紹 Beautiful Soup的功能和用法,并提供示例代碼,幫助你更好地理解和應(yīng)用這個(gè)優(yōu)秀的庫(kù)。2BK28資訊網(wǎng)——每日最新資訊28at.com

一、Beautiful Soup簡(jiǎn)介

1、什么是Beautiful Soup?

Beautiful Soup是一個(gè)Python庫(kù),用于解析HTML和XML文檔,并提供了簡(jiǎn)單而直觀的方式來(lái)遍歷文檔樹(shù)、搜索特定標(biāo)簽和提取數(shù)據(jù)。它的名字取自路易斯·卡洛斯·蒙特斯·庫(kù)比斯(Luis Carlos Monteiro Cabral de Melo)的詩(shī)歌《Alice》中的一句話:“Beautiful Soup so rich and green, Waiting in a hot tureen!”,寓意著它用來(lái)“撈取”美味的數(shù)據(jù)。2BK28資訊網(wǎng)——每日最新資訊28at.com

2、安裝Beautiful Soup

使用pip來(lái)安裝Beautiful Soup庫(kù):2BK28資訊網(wǎng)——每日最新資訊28at.com

pip install beautifulsoup4

同時(shí),為了能夠解析HTML和XML文檔,還需要安裝一個(gè)解析器,如lxml或html5lib:2BK28資訊網(wǎng)——每日最新資訊28at.com

pip install lxml# 或pip install html5lib

3、導(dǎo)入Beautiful Soup

導(dǎo)入Beautiful Soup庫(kù):2BK28資訊網(wǎng)——每日最新資訊28at.com

from bs4 import BeautifulSoup

二、Beautiful Soup的基本用法

1、解析HTML文檔

Beautiful Soup可以解析HTML或XML文檔,并將其轉(zhuǎn)換成文檔樹(shù)的形式,以便于遍歷和操作。2BK28資訊網(wǎng)——每日最新資訊28at.com

示例代碼:2BK28資訊網(wǎng)——每日最新資訊28at.com

from bs4 import BeautifulSoup# HTML文檔示例html_doc = """<html>    <head>        <title>我的第一個(gè)網(wǎng)頁(yè)</title>    </head>    <body>        <h1>歡迎來(lái)到我的網(wǎng)頁(yè)</h1>        <p>這是一個(gè)段落。</p>    </body></html>"""# 創(chuàng)建Beautiful Soup對(duì)象soup = BeautifulSoup(html_doc, 'html.parser')

在這個(gè)示例中,創(chuàng)建了一個(gè)Beautiful Soup對(duì)象,并使用html.parser解析器解析了HTML文檔。2BK28資訊網(wǎng)——每日最新資訊28at.com

2、遍歷文檔樹(shù)

一旦有了Beautiful Soup對(duì)象,就可以遍歷文檔樹(shù),查找特定的標(biāo)簽和數(shù)據(jù)。2BK28資訊網(wǎng)——每日最新資訊28at.com

以下是一些基本的遍歷方法:2BK28資訊網(wǎng)——每日最新資訊28at.com

(1)查找標(biāo)簽

使用find()方法來(lái)查找特定的標(biāo)簽:2BK28資訊網(wǎng)——每日最新資訊28at.com

# 查找第一個(gè)<h1>標(biāo)簽h1_tag = soup.find('h1')# 打印標(biāo)簽文本print(h1_tag.text)

(2)遍歷子節(jié)點(diǎn)

使用children屬性來(lái)遍歷一個(gè)標(biāo)簽的子節(jié)點(diǎn):2BK28資訊網(wǎng)——每日最新資訊28at.com

# 遍歷<body>標(biāo)簽的子節(jié)點(diǎn)body_tag = soup.find('body')for child in body_tag.children:    print(child)

(3)遍歷所有標(biāo)簽

使用find_all()方法來(lái)查找所有特定類型的標(biāo)簽:2BK28資訊網(wǎng)——每日最新資訊28at.com

# 查找所有<p>標(biāo)簽p_tags = soup.find_all('p')# 遍歷所有<p>標(biāo)簽for p_tag in p_tags:    print(p_tag.text)

3、提取數(shù)據(jù)

找到目標(biāo)標(biāo)簽,就可以提取其中的數(shù)據(jù)。2BK28資訊網(wǎng)——每日最新資訊28at.com

以下是一些提取數(shù)據(jù)的示例:2BK28資訊網(wǎng)——每日最新資訊28at.com

(1)獲取標(biāo)簽文本

使用.text屬性獲取標(biāo)簽的文本內(nèi)容:2BK28資訊網(wǎng)——每日最新資訊28at.com

# 獲取<h1>標(biāo)簽的文本內(nèi)容h1_text = h1_tag.textprint(h1_text)

(2)獲取標(biāo)簽屬性

如果標(biāo)簽有屬性,可以使用字典的方式獲取:2BK28資訊網(wǎng)——每日最新資訊28at.com

# 獲取<head>標(biāo)簽的lang屬性值head_tag = soup.find('head')lang_value = head_tag['lang']print(lang_value)

(3)提取鏈接

如果要提取鏈接,可以使用.get()方法:2BK28資訊網(wǎng)——每日最新資訊28at.com

# 獲取<a>標(biāo)簽的鏈接a_tag = soup.find('a')link = a_tag.get('href')print(link)

三、高級(jí)用法

1、使用CSS選擇器

Beautiful Soup支持使用CSS選擇器來(lái)查找標(biāo)簽,這使得查找更靈活和方便:2BK28資訊網(wǎng)——每日最新資訊28at.com

# 使用CSS選擇器查找所有<p>標(biāo)簽p_tags = soup.select('p')

2、嵌套查找

在查找方法中嵌套使用,以查找更深層次的標(biāo)簽:2BK28資訊網(wǎng)——每日最新資訊28at.com

# 查找<body>標(biāo)簽下的所有<p>標(biāo)簽p_tags = soup.find('body').find_all('p')

3、處理不規(guī)范的HTML

Beautiful Soup可以處理不規(guī)范的HTML文檔,自動(dòng)修復(fù)標(biāo)簽嵌套和缺失的情況:2BK28資訊網(wǎng)——每日最新資訊28at.com

# 處理不規(guī)范的HTML文檔dirty_html = "<p>這是一個(gè)段落</p>"soup = BeautifulSoup(dirty_html, 'html.parser')print(soup.prettify())

四、示例代碼

以下是一個(gè)完整的示例,演示了如何使用Beautiful Soup解析HTML文檔、遍歷文檔樹(shù)、查找標(biāo)簽和提取數(shù)據(jù):2BK28資訊網(wǎng)——每日最新資訊28at.com

from bs4 import BeautifulSoup# HTML文檔示例html_doc = """<html>    <head>        <title>我的第一個(gè)網(wǎng)頁(yè)</title>    </head>    <body>        <h1>歡迎來(lái)到我的網(wǎng)頁(yè)</h1>        <p>這是一個(gè)段落。</p>    </body></html>"""# 創(chuàng)建Beautiful Soup對(duì)象soup = BeautifulSoup(html_doc, 'html.parser')# 查找<h1>標(biāo)簽h1_tag = soup.find('h1')# 獲取<h1>標(biāo)簽的文本內(nèi)容h1_text = h1_tag.text# 查找所有<p>標(biāo)簽p_tags = soup.find_all('p')# 提取第一個(gè)<p>標(biāo)簽的文本內(nèi)容p_text = p_tags[0].text# 打印結(jié)果print("標(biāo)題:", h1_text)print("段落:", p_text)

這個(gè)示例演示了如何解析HTML文檔、查找標(biāo)簽和提取數(shù)據(jù),以及如何處理不規(guī)范的HTML文檔。2BK28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

Beautiful Soup是一個(gè)強(qiáng)大的HTML和XML解析庫(kù),為Python爬蟲(chóng)和數(shù)據(jù)采集提供了強(qiáng)大的工具。2BK28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-34568-0.htmlPython爬蟲(chóng)神器:Beautiful Soup指南,輕松解析網(wǎng)頁(yè)數(shù)據(jù)!

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 徹底解決Spring Cloud Gateway中Body讀取問(wèn)題

下一篇: 一篇學(xué)會(huì) Rust 內(nèi)存布局

標(biāo)簽:
  • 熱門焦點(diǎn)
  • Redmi Pad評(píng)測(cè):紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍(lán)牙耳機(jī)到筆記本電腦,紅米不知不覺(jué)之間也已經(jīng)形成了自己頗有競(jìng)爭(zhēng)力的產(chǎn)品體系,在中端和次旗艦市場(chǎng)上甚至要比小米新機(jī)的表現(xiàn)來(lái)得更好,正所謂“大丈夫生居
  • 5月安卓手機(jī)好評(píng)榜:魅族20 Pro奪冠

    性能榜和性價(jià)比榜之后,我們來(lái)看最后的安卓手機(jī)好評(píng)榜,數(shù)據(jù)來(lái)源安兔兔評(píng)測(cè),收集時(shí)間2023年5月1日至5月31日,僅限國(guó)內(nèi)市場(chǎng)。第一名:魅族20 Pro好評(píng)率:97.50%不得不感慨魅族老品牌還
  • 5月iOS設(shè)備好評(píng)榜:iPhone 14僅排第43?

    來(lái)到新的一月,安兔兔的各個(gè)榜單又重新匯總了數(shù)據(jù),像安卓陣營(yíng)的榜單都有著比較大的變動(dòng),不過(guò)iOS由于設(shè)備的更新?lián)Q代并沒(méi)有那么快,所以相對(duì)來(lái)說(shuō)變化并不大,特別是iOS好評(píng)榜,老款設(shè)
  • Raft算法:保障分布式系統(tǒng)共識(shí)的穩(wěn)健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可復(fù)制、可冗余、可容錯(cuò)”)的首字母縮寫(xiě)。Raft算法是一種用于在分布式系統(tǒng)
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個(gè)線程之間通過(guò)某種機(jī)制進(jìn)行協(xié)調(diào)和交互,例如,線程等待和通知機(jī)制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實(shí)現(xiàn)手段有以下幾種方式:Object 類下
  • 掘力計(jì)劃第 20 期:Flutter 混合開(kāi)發(fā)的混亂之治

    在掘力計(jì)劃系列活動(dòng)第20場(chǎng),《Flutter 開(kāi)發(fā)實(shí)戰(zhàn)詳解》作者,掘金優(yōu)秀作者,Github GSY 系列目負(fù)責(zé)人戀貓的小郭分享了Flutter 混合開(kāi)發(fā)的混亂之治。Flutter 基于自研的 Skia 引擎
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 講故事上個(gè)月我寫(xiě)過(guò)一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,當(dāng)時(shí)用的是 GDIView + WinDbg 把問(wèn)題搞定,前者用來(lái)定位泄露資源,后者用來(lái)定位泄露代碼,后面有朋友反
  • 共享單車的故事講到哪了?

    來(lái)源丨海克財(cái)經(jīng)與共享充電寶相差不多,共享單車已很久沒(méi)有被國(guó)內(nèi)熱點(diǎn)新聞關(guān)照到了。除了一再漲價(jià)和用戶直呼用不起了。近日多家媒體再發(fā)報(bào)道稱,成都、天津、鄭州等地多個(gè)共享單
  • AMD的AI芯片轉(zhuǎn)單給三星可能性不大 與臺(tái)積電已合作至2nm制程

    據(jù) DIGITIMES 消息,英偉達(dá) AI GPU 出貨逐季飆升,接下來(lái) AMD MI 300 系列將在第 4 季底量產(chǎn)。而半導(dǎo)體業(yè)內(nèi)人士表示,近日傳出 AMD 的 AI 芯片將轉(zhuǎn)單給
Top 主站蜘蛛池模板: 黑龙江省| 南木林县| 南溪县| 汉中市| 汾西县| 奉贤区| 普宁市| 大宁县| 阜新市| 建昌县| 石首市| 大足县| 永福县| 烟台市| 凤山市| 北川| 建昌县| 浠水县| 安顺市| 三明市| 抚远县| 剑川县| 古浪县| 滨海县| 凌海市| 文安县| 桐庐县| 云林县| 襄垣县| 突泉县| 石渠县| 财经| 迁西县| 西藏| 济阳县| 屯门区| 和顺县| 家居| 吉首市| 呼和浩特市| 武平县|