使用BeautifulSoup解析页面

@安***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] )
全部评论

相关推荐

07-16 17:55
门头沟学院 Java
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
一表renzha:不是你说是南通我都没往那方面想,人家真是想表达那个意思吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务