@安***eautifulsoup4:
- pip install beautifulsoup4
@引入类库
# 由bs4引入鸡汤
from bs4 import BeautifulSoup
- 1
- 2
@获得beautifulsoup对象
# 声明使用lxml作为解析器,获得一碗鸡汤
# 这里必须同时装有lxml
bsp = BeautifulSoup(page_text, 'lxml')
- 1
- 2
- 3
@获得具体页面元素
# 获得 title 元素
# print(bsp.title)
# print(type(bsp.title)) # <class 'bs4.element.Tag'>
# 获得 title 元素文本
# print(bsp.title.text)
# print(bsp.title.string)
# 获得第一个div元素
# print(bsp.div)
# 获得所有div元素
# print(bsp.find_all('div'))
# print(bsp.select('div'))
# 所有拥有id属性的div元素集合列表
# print(bsp.select('div[id]'))
# 所有class属性为div_classname的所有元素
# print(bsp.select('.div_classname'))
# print(bsp.select('div[class=div_classname]'))
# 所有id属性为divid的所有元素
# print(bsp.select('#divid'))
# print(bsp.select('div[id=divid]'))
# 位置为最前面2个的div元素
# print( bsp.find_all('div', limit=2) )
# 第一个a元素的href属性
# print( bsp.a.get('href') )
# print( bsp.a.attrs['href'] )
# 第二个a元素的所有属性
# print( bsp.a.find_next('a').attrs['href'] )
# print( bsp.select('a')[1].attrs['href'] )
#id=divid的div元素一级子a元素
# print( bsp.select('div[id=divid] > a') )
#id=divid的div元素下所有层的a元素
# print( bsp.select('div[id=divid] a') )
#id=divid的div标签下第1个span的id属性值
# print( bsp.select('div[id=divid] span')[0].attrs['id'] )
# 获得所有a元素的href属性集合
# print( [a.attrs['href'] for a in bsp.select('a')] )
# 所有属性【非空】的div元素集合列表
# print( [div for div in bsp.select('div') if div.attrs] )
# 所有属性为【空】的div元素集合列表
# print( [div fordivin bsp.select('div') if not div.attrs] )