概述
一、简介
和lxml一样,Beautiful Soup也是一个HTML/XML的解析器,主要的功能也是如何解析和提取HTML/XML数据,lxml只会局部遍历,而Beautiful Soup是基于HTML DOM(Document Object Model)的,会载入整个文档,解析整个DOM树,因此时间和内存的开销都会大很多,所以性能要低于lxml.
二、安装Beautiful Soup
windows:win+r ---->cmd---->pip install bs4
linux: pip install bs4
三、四个常用的对象
Beautiful Soup将复杂的HTML文档转换成一个复杂的树形结构,每一个节点都是Python对象,所有对象可归纳为四种:Beautiful Soup、Tag、NavigatableString、Comment.
四、创建Beautiful Soup对象frombs4 importBeautifulSoup
soup = BeautifulSoup('text','lxml') #
注意:(1)BeautifulSoup这个类的父类是Tag,因此Tag里面能用的方法BeautifulSoup都能用。(2)部分网站的代码不规范,明明写的解析没有问题,但是程序找不到结点,这时候我们用html5lib进行解析。
五、Tag对象
5.1 Tag通俗讲是HTML中的一个个标签。soup = BeautifulSoup('Extremely bold')
tag = soup.b
type(tag) #
5.2 Tag中的两个属性
每个tag都有自己的名字,通过name来获取:tag.name #'b'
一个tag可能有多个属性,tag的属性操作方法与字典相同tag['class'] #'boldest'tag.attrs # {'class':['boldest']}
六、.NavigatableString对象
如果拿到标签后,还想获取标签中的内容,name可以通过tag.string获取标签中的文字soup = BeautifulSoup('Extremely bold')
print(soup.string) #Extremely boldprint(type(soup.string)) #
七、Comment对象
标签内字符串注释部分markup = ''soup = BeautifulSoup(markup)
comment = soup.b.string
type(comment) #
八、四个解析库
8.1 find()和find_all()
(1): find方法是找到一个满足条件的标签后立即返回,只返回一个元素
(2): find_all方法是把所有满足条件的标签选取到,然后返回回去
8.2 select_one()和select()
使用上面这两种方法可以方便找出元素,但有时使用css选择器的方式更加方便。
(1): 通过标签查找print(soup.select('a)
(2): 通过类名查找print(soup.select('.sister'))
(3):通过id查找print(soup.select('#link1')
(4):组合查找#查找p标签中,id=link1的内容,二者要用空格分开print(soup.select('p #link1')
#直接子标签查找,则用>分割print(soup.select("head > title"))
(5):通过属性查找#属性需要用中括号括起来,注意属性和标签属于一个节点print(soup.select('a[href="http//example.com]/elsie"]'))
九、获取属性值和文本
9.1 获取标签属性
(1)通过下标获取:href=a["href"]
(2)通过attrs属性获取:href=a.attrs['href']
9.2 获取标签文本
(1)string:获取某个标签下的非标签字符串(NavigatableString类型)
(2)strings:获取某个标签下的子孙非标签字符串(返回的是迭代器,里面可能包含换行)
(3)stripeed_strings:获取某个标签下的子孙非标签字符串(返回的是迭代器,可以通过list转换为列表)
(4)get_text:获取某个标签下的子孙非标签字符串,直接返回字符串,它可以获得n这样的,string不可以。
最后
以上就是顺心冥王星为你收集整理的python beautifulsoup4 table tr_Python爬虫BeautifulSoup4教程|安装,获取标签属性文本,NavigatableString,Comment,html5l...的全部内容,希望文章能够帮你解决python beautifulsoup4 table tr_Python爬虫BeautifulSoup4教程|安装,获取标签属性文本,NavigatableString,Comment,html5l...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复