我是靠谱客的博主 顺心冥王星,最近开发中收集的这篇文章主要介绍python beautifulsoup4 table tr_Python爬虫BeautifulSoup4教程|安装,获取标签属性文本,NavigatableString,Comment,html5l...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、简介

和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...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部