BeautifulSoup

BeautifulSoup

安装方法: pip install beautifulsoup4

 

解析库

解析器 使用方法 优势 劣势
Python标准库 BeautifulSoup(markup, "html.parser") Python的内置标准库、执行速度适中 、文档容错能力强 Python 2.7.3 or 3.2.2)前的版本中文容错能力差
lxml HTML 解析器 BeautifulSoup(markup, "lxml") 速度快、文档容错能力强 需要安装C语言库
lxml XML 解析器 BeautifulSoup(markup, "xml") 速度快、唯一支持XML的解析器 需要安装C语言库
html5lib BeautifulSoup(markup, "html5lib") 最好的容错性、以浏览器的方式解析文档、生成HTML5格式的文档 速度慢、不依赖外部扩展

bs4进行数据解析

数据解析的原理: 1、标签定位 2、提取标签、标签属性中存储的数据值

bs4数据解析的原理: 1、实例化一个BeautifulSoup对象,并且将页面源码加载到该对象中 2、通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取

如何实例化BeautifulSoup对象:

 

 

对象的实例化:

1、将本地中的html文档中的数据加载到该对象中

fp=open('./test.html','r',encoding='utf-8')

soup=BeautifulSoup(fp,'lxml')

2、将互联网上获取的页面源码加载到该对象中:

page_text=response.text

soup=BeautifulSoup(page_text,'lxml')

 

提供的用于数据解析的方法和属性

1、soup.tagname:返回的是文档中第一次出现的tagname对应的标签

2、soup.find(): -find('tagname'):等同于soup.tagname

-属性定位:

-soup.find('div',class_/id/attr='song')

3、soup.find_all('tagname'):返回符合要求的所有标签(列表)

 

CSS选择器 select

通过select()直接传入CSS选择器即可完成选择

1、select('某种选择器(id,class,标签...选择器)'),返回的是一个列表

2、层级选择器:

-soup.select(''):>表示的是一个层级

-soup.select():空格标示的是多个层级

 
 

获取标签之间的文本数据

1、soup.a.text/string/get_text()

-text/get_text():可以获取一个标签中所有的文本内容

-string:只可以获取该标签下面直系的文本内容

 
 

获取标签中的属性值

soup.a['href']

 

 

 
posted @ 2022-04-16 17:53  鞠雨童  阅读(78)  评论(0)    收藏  举报