摘要:,所有筆記均托管于倉(cāng)庫(kù)。是一個(gè)用來(lái)從或文件中提取數(shù)據(jù)的庫(kù)。如果對(duì)速度有嚴(yán)格要求,應(yīng)直接使用庫(kù)來(lái)解析。對(duì)而言,解析器的速度比或更快??梢酝ㄟ^(guò)安裝庫(kù)來(lái)顯著提升檢測(cè)編碼方案的速度。
GitHub@orca-j35,所有筆記均托管于 python_notes 倉(cāng)庫(kù)。概述
歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處。
?官方文檔中混雜了 Py2 和 Py3 的術(shù)語(yǔ)和代碼,本筆記針對(duì) Py3 梳理了文檔中的內(nèi)容,在了解 BeautifulSoup 的過(guò)程中,建議將本筆記與官方文檔配合食用。
Beautiful Soup 是一個(gè)用來(lái)從 HTML 或 XML 文件中提取數(shù)據(jù)的 Python 庫(kù)。在使用 BeautifulSoup 時(shí),我們選擇自己喜歡的解析器,從而以自己熟悉的方式來(lái)導(dǎo)航、查找和修改解析樹(shù)。
相關(guān)資源:
Home: https://www.crummy.com/softwa...
PyPI: https://pypi.org/project/beau...
Docs-EN: https://www.crummy.com/softwa...
Docs-CN: https://www.crummy.com/softwa...
安裝:
pip install beautifulsoup4
如果遇到安裝問(wèn)題,可以參考:
Installing Beautiful Soup
Problems after installation
如果能順利執(zhí)行以下代碼,則說(shuō)明安裝成功:
from bs4 import BeautifulSoup soup = BeautifulSoup("Hello
", "lxml") print(soup.p.string) #> Hello
?在安裝庫(kù)和導(dǎo)入庫(kù)時(shí)使用的名稱不一定相同,例如: 在安裝 BeautifulSoup4 時(shí),使用的名稱是 beautifulsoup4;在導(dǎo)入時(shí),使用的名稱是 bs4 (路徑為 ~PythonLibsite-packagess4)。
如果在使用過(guò)程中遇到本文未涵蓋的問(wèn)題,請(qǐng)參考: https://www.crummy.com/softwa...
Three sisters下面這段名為 "Three sisters" 文檔是本筆記的 HTML 示例文檔(官方文檔中也用的這段代碼):
html_doc = """The Dormouse"s story The Dormouse"s story
Once upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.
...
"""
這段 HTML 文檔存在 "tag soup",HTML 解析器會(huì)自動(dòng)修復(fù) "tag soup"
提高性能BeautifulSoup 的速度永遠(yuǎn)會(huì)低于其使用的解析器的速度。如果對(duì)速度有嚴(yán)格要求,應(yīng)直接使用 lxml 庫(kù)來(lái)解析。
對(duì) BeautifulSoup 而言,lxml 解析器的速度比 html.parser 或 html5lib 更快。
可以通過(guò)安裝 cchardet 庫(kù)來(lái)顯著提升檢測(cè)編碼方案的速度。
僅解析部分文檔并不會(huì)節(jié)省大量的解析時(shí)間,但是可以節(jié)省大量?jī)?nèi)存,并有效提升檢索文檔的速度。
BeautifulSoup()文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/45122.html
摘要:,所有筆記均托管于倉(cāng)庫(kù)。中包含的字符串或等節(jié)點(diǎn)被視作該的或節(jié)點(diǎn)。為了便于在或節(jié)點(diǎn)中進(jìn)行導(dǎo)航,提供了許多與此相關(guān)的方法。節(jié)點(diǎn)名可使用節(jié)點(diǎn)名來(lái)選取目標(biāo)節(jié)點(diǎn),此時(shí)會(huì)返回子孫節(jié)點(diǎn)中的第一個(gè)同名節(jié)點(diǎn)。 GitHub@orca-j35,所有筆記均托管于 python_notes 倉(cāng)庫(kù)。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處。 在解析樹(shù)中導(dǎo)航 參考: Navigating the tree 在學(xué)習(xí)與...
摘要:參考概述中定義了許多搜索解析樹(shù)的方法,但這些方法都非常類似,它們大多采用與相同的參數(shù)和,但是僅有和支持參數(shù)。本節(jié)會(huì)以作為示例過(guò)濾器過(guò)濾器用于在解析樹(shù)中篩選目標(biāo)節(jié)點(diǎn),被用作搜索方法的實(shí)參。如果函數(shù)返回,則保留該節(jié)點(diǎn),否則拋棄該節(jié)點(diǎn)。 GitHub@orca-j35,所有筆記均托管于 python_notes 倉(cāng)庫(kù)。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處。參考: https://www.cr...
摘要:筆者看到了,覺(jué)得還蠻有意思的,因此,決定自己也寫(xiě)一個(gè)玩玩首先我們的爬蟲(chóng)要能將英語(yǔ)單詞翻譯成中文,因此,我們就需要一個(gè)網(wǎng)站幫助我們做這件事情。 ??最近在微信公眾號(hào)中看到有人用Python做了一個(gè)爬蟲(chóng),可以將輸入的英語(yǔ)單詞翻譯成中文,或者把中文詞語(yǔ)翻譯成英語(yǔ)單詞。筆者看到了,覺(jué)得還蠻有意思的,因此,決定自己也寫(xiě)一個(gè)玩玩~~??首先我們的爬蟲(chóng)要能將英語(yǔ)單詞翻譯成中文,因此,我們就需要一個(gè)網(wǎng)...
摘要:箭頭函數(shù)基本語(yǔ)法函數(shù)語(yǔ)法具名函數(shù)匿名函數(shù)三句話第一句話聲明第二句話聲明匿名函數(shù)第三句話把匿名函數(shù)賦值給箭頭函數(shù)語(yǔ)法特點(diǎn)只能做賦值,不能做聲明第一種寫(xiě)法完全寫(xiě)法不省略參數(shù)個(gè)數(shù),不省略函數(shù)體花括號(hào)參數(shù)個(gè)數(shù)函數(shù)體內(nèi)語(yǔ)句個(gè)數(shù)第二種寫(xiě)法省略參數(shù)括號(hào)參 1.箭頭函數(shù)基本語(yǔ)法 1.1 ES3 函數(shù)語(yǔ)法 // 具名函數(shù) function xxx(arg1, arg2) { console.lo...
摘要:回調(diào)函數(shù)提供兩個(gè)參數(shù)和,表示有沒(méi)有錯(cuò)誤發(fā)生,是文件內(nèi)容。文件關(guān)閉第一個(gè)參數(shù)文件時(shí)傳遞的文件描述符第二個(gè)參數(shù)回調(diào)函數(shù)回調(diào)函數(shù)有一個(gè)參數(shù)錯(cuò)誤,關(guān)閉文件后執(zhí)行。 showImg(//img.mukewang.com/5d3f890d0001836113660768.jpg); 人所缺乏的不是才干而是志向,不是成功的能力而是勤勞的意志。 —— 部爾衛(wèi) 文章同步到github博客:https:/...
閱讀 1197·2021-09-22 15:24
閱讀 2298·2019-08-30 15:44
閱讀 2626·2019-08-30 10:55
閱讀 3365·2019-08-29 13:25
閱讀 1651·2019-08-29 13:09
閱讀 1405·2019-08-26 14:05
閱讀 1397·2019-08-26 13:58
閱讀 1988·2019-08-26 11:57