bs4:BeautifulSoup
作用:用來(lái)解析網(wǎng)頁(yè)播瞳,提取指定數(shù)據(jù)的理肺。提供的接口非常簡(jiǎn)單糙置。使用起來(lái)人性化云茸。所以用的比較多,但是bs4只能解析html格式的數(shù)據(jù)
- 安裝
pip install bs4
bs4簡(jiǎn)單使用
整體使用步驟:
bs4里面有一個(gè)類谤饭,BeautifulSoup标捺,然后通過(guò)這個(gè)類將網(wǎng)頁(yè)html格式字符串生成一個(gè)對(duì)象,然后通過(guò)對(duì)象的方法來(lái)進(jìn)行查找指定元素
(1)將本地html文件轉(zhuǎn)化為對(duì)象
soup = BeautifulSoup(open('soup.html', encoding='utf8'), 'lxml')
lxml :
是一個(gè)文件解析庫(kù)揉抵,通過(guò)它的解析生成對(duì)象亡容,是一個(gè)第三方庫(kù),需要安裝冤今,
安裝
pip install lxml
html.parser :
是python自帶的一個(gè)文件解析庫(kù)
eg:
soup = BeautifulSoup(open('soup.html', encoding='utf8'), 'lxml')
根據(jù)標(biāo)簽名查找
soup.a 只能查找得到第一個(gè)符合要求的節(jié)點(diǎn),是一個(gè)對(duì)象闺兢,bs4自己封裝類的對(duì)象
獲取屬性
soup.a.attrs 獲取得到所有屬性和值,是一個(gè)字典
soup.a.attrs['href'] 獲取指定的屬性值
soup.a['href'] 簡(jiǎn)寫(xiě)形式
獲取文本
soup.a.string
soup.a.text
soup.a.get_text()
[注]如果標(biāo)簽里面還有標(biāo)簽戏罢,那么string獲取就是空屋谭,而后兩個(gè)獲取的是純文本內(nèi)容
find_all方法
返回的是一個(gè)列表,列表里面都是節(jié)點(diǎn)對(duì)象
soup.find_all('a') 找到所有a
soup.find_all('a', limit=2) 提取符合要求的前兩個(gè)a
soup.find_all(['a', 'li']) 查找得到所有的a和li
soup.find_all('a', class_='xxx')查找得到所有class是xxx的a
soup.find_all('li', class_=re.compile(r'^xiao'))
查找所有的class以xiao開(kāi)頭的li標(biāo)簽
作者:垃圾桶邊的狗
鏈接:http://www.reibang.com/p/26a3632796dd
來(lái)源:簡(jiǎn)書(shū)
簡(jiǎn)書(shū)著作權(quán)歸作者所有龟糕,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處桐磁。