首页 > 其他 > 详细

BS4 -->解析库

时间:2020-09-04 09:55:43      阅读:55      评论:0      收藏:0      [点我收藏+]

1.BeautifulSoup库介绍(了解)

BeautifulSoup库介绍
BeautifulSoup也是一个解析库
BS解析数据是依赖解析器的,BS支持的解析器有html,parser,lxml,xml,htmlSlib等,其中lxml解析器速度快,容错能力强
BS现阶段应用的解析多数是lxml
pip install bs4
# bs4的编码流程
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text,lxml)
tag = soup.select(CSS选择器表达式) 
tag = soup.nodename()
tag = soup.findall()
# xpath编码流程
from lxml import etree
tree = etree.HTML(res.text)
tag = tree.xpath()

2.BS4选择器使用

 

# 1.节点选择器
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text,lxml)
tag = soup.a

 

# 2.方法选择器
find_all(name,attrs,text,limit):
    1).soup.find_all(name=nodename):根据节点名定位节点
    2).soup.find_all(attrs={attribute_name: attribute_value}):根据属性定位, 多属性时, 一个即可定位
    3).soup.find_all(text=re.compile(r...)):根据节点文本定位, 返回文本
    4).soup.find_all(name=nodename, limit=2):只返回两个结果
find(name, attrs, text, limit): 区别于find_all, find()返回的是一个对象结果, find_all()返回的是一个列表
# CSS选择器:
属性选择器:

1.根据节点名定位标签: 标签选择器
soup.select(title)
2.根据节点的class属性定位标签: class选择器(classical: 经典)
soup.select(.panel)
3.根据id属性定位标签: id选择器
soup.select(#item)
4.嵌套选择:
ul_list = soup.select(ul)  # 得到的依然是一个列表数据类型
for ul in ul_list:
  print(ul.select(li))
5.层级选择器
soup.select(div > ul > li)   # 单层级选择器
soup.select(div li)  # 多层级选择器
# 获取节点的文本或属性:
tag_obj.string: 获取直接子文本-->如果节点内有与直系文本平行的节点, 该方法拿到的是None
tag_obj.get_text(): 获取子孙节点的所有文本
tag_obj[attribute]: 获取节点属性

 

BS4 -->解析库

原文:https://www.cnblogs.com/nbzyf/p/13611971.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!