Python利用BeautifulSoup解析Html的方法示例
介紹
Beautiful Soup提供一些簡(jiǎn)單的、python式的函數(shù)用來處理導(dǎo)航、搜索、修改分析樹等功能。它是一個(gè)工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù),因?yàn)楹?jiǎn)單,所以不需要多少代碼就可以寫出一個(gè)完整的應(yīng)用程序。
Beautiful Soup自動(dòng)將輸入文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒有指定一個(gè)編碼方式,這時(shí),Beautiful Soup就不能自動(dòng)識(shí)別編碼方式了。然后,你僅僅需要說明一下原始編碼方式就可以了。
Beautiful Soup已成為和lxml、html6lib一樣出色的python解釋器,為用戶靈活地提供不同的解析策略或強(qiáng)勁的速度。
本文將給大家詳細(xì)介紹關(guān)于Python利用BeautifulSoup解析Html的方法,下面話不多說了,來一起看看詳細(xì)的介紹:
1. 安裝Beautifulsoup4
pip install beautifulsoup4 pip install lxml pip install html5lib
lxml 和 html5lib 是解析器
2. html
<!-- This is the example.html file. --> <html><head><title>The Website Title</title></head> <body> <p>Download my <strong>Python</strong> book from <a rel="external nofollow" >my website</a>.</p> <p class="slogan">Learn Python the easy way!</p> <p>By <span id="author">Al Sweigart</span></p> </body></html>
上面的html保存html文件
3.開始解析
import bs4 exampleFile = open('example.html') exampleSoup = bs4.BeautifulSoup(exampleFile.read(),'html5lib') elems = exampleSoup.select('#author') type(elems) print (elems[0].getText())
結(jié)果輸出 Al Sweigart
BeautifulSoup 使用select 方法尋找元素,類似jquery的css選擇器
soup.select(‘div')
———————–所有為<div>的元素soup.select(‘#author')
—————–id為author的元素soup.select(‘.notice')
——————class 為notice的元素
參考《Python 編程快速上手—–讓繁瑣工作自動(dòng)化》
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持
相關(guān)文章
Python使用plt.boxplot() 參數(shù)繪制箱線圖
這篇文章主要介紹了Python使用plt.boxplot() 參數(shù)繪制箱線圖 ,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python網(wǎng)頁(yè)解析器使用實(shí)例詳解
這篇文章主要介紹了Python網(wǎng)頁(yè)解析器使用實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Python configparser模塊封裝及構(gòu)造配置文件
這篇文章主要介紹了Python configparser模塊封裝及構(gòu)造配置文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08pytest測(cè)試框架+allure超詳細(xì)教程
這篇文章主要介紹了pytest測(cè)試框架+allure超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11python線程鎖(thread)學(xué)習(xí)示例
python thread提供了低級(jí)別的、原始的線程以及一個(gè)簡(jiǎn)單的鎖,下面提供一個(gè)python線程線程鎖(thread)學(xué)習(xí)示例,大家參考使用2013-12-12pyqt5使用按鈕進(jìn)行界面的跳轉(zhuǎn)方法
今天小編就為大家分享一篇pyqt5使用按鈕進(jìn)行界面的跳轉(zhuǎn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python中函數(shù)參數(shù)調(diào)用方式分析
這篇文章主要介紹了Python中函數(shù)參數(shù)調(diào)用方式,結(jié)合實(shí)例形式分析了Python函數(shù)參數(shù)定義與使用的四種常見操作方法,需要的朋友可以參考下2018-08-08Python優(yōu)雅實(shí)現(xiàn)二分查找的示例詳解
二分查找是一種高效的搜索算法,用于在有序數(shù)組中查找特定元素,本文將介紹二分查找的基本原理,并通過Python代碼進(jìn)行詳細(xì)講解,需要的可以參考一下2023-07-07