首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

04.BeautifulSoup使用

你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。 ​...切记:返回的是BeautifulSoup特有的结果集(ResultSet'>),里面装的是标签对象。...属性为link1的标签 ​ 4、属性查找: 例1: 选择a标签,其属性中存在myname的所有标签 soup.select("a[myname]") 选择a标签,其属性href=http:/...[s.extract() for s in soup(['script','fram']) ] 5、获取内容:get_text()、strings属性 get_text()方法:返回的是列表。...并且若标 签内部没有文本 string 属性返回的是None ,而text属性不会返回None 3、Comment 的使用: 介绍:在网页中的注释以及特殊字符串。

2.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    六、解析库之Beautifulsoup模块

    Soup pip install beautifulsoup4 #安装解析器 Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是 lxml ....(list(soup.a.next_siblings)) #下面的兄弟们=>生成器对象 print(soup.a.previous_siblings) #上面的兄弟们=>生成器对象 四 搜索文档树 1、..._ print(soup.find_all(id=True)) #查找有id属性的标签 # 有些tag属性在搜索不能使用,比如HTML5中的 data-* 属性: data_soup = BeautifulSoup...BeautifulSoup 对象和 tag 对象可以被当作一个方法来使用,这个方法的执行结果与调用这个对象的 find_all() 方法相同,下面两行代码是等价的: soup.find_all("a")...,但是速度快 2、建议使用find,find_all查询匹配单个结果或者多个结果 3、如果对css选择器非常熟悉建议使用select #3、记住常用的获取属性attrs和文本值get_text

    1.7K60

    Beautiful Soup (一)

    今天小婷儿给大家分享的是Beautiful Soup (一)。...Beautiful Soup (一) 一、Beautiful Soup库的理解 1、Beautiful Soup库可以说是对HTML进行解析、遍历、维护“标签树”的功能库 2、pip install bs4...parents就是获取所有的祖先节点,返回的是一个生成器 注:>生成器是只能遍历一次的。 >生成器是一类特殊的迭代器。 ?...img下的id值为width的标签 上面三者可以混合使用,如ul .title #width 6).get_text()方法和前面的.string属性有点不一样哈,这里的他会获取该标签的所有文本内容,不管有没有子标签...注:.string会把注释也打印出来,若标签没有内容,只有子标签有,就返回None; .get_text()不打印注释,会把标签本身和子标签内容都打印出来; 7)还可以用标签选择器来进行筛选元素, 返回的都是一个列表

    58930

    二、爬虫基础库

    对象的种类 Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为种 Tag , NavigableString , BeautifulSoup...字符串常被包含在tag内.Beautiful Soup用 NavigableString 类来包装tag中的字符串,通过 unicode() 方法可以直接将 NavigableString 对象转换成Unicode...注意: Beautiful Soup中字符串节点不支持这些属性,因为字符串没有子节点。... .contents 属性,因为字符串没有子节点: text = title_tag.contents[0] text.contents # AttributeError: 'NavigableString...我们打印输出 .children 看一下,可以发现它是一个 list 生成器对象 通过tag的 .children 生成器,可以对tag的子节点进行循环: print(title_tag.children

    1.8K90

    一起学爬虫——使用Beautiful S

    Beautiful Soup具有将输入文件自动补全的功能,如果输入的HTML文件的title标签没有闭合,则在输出的文件中会自动补全,并且还可以将格式混乱的输入文件按照标准的缩进格式输出。...通过Beautiful Soup对象+"."+节点即可直接访问到节点。 Beautiful Soup对象+"."+节点+"."+string即可提取到节点的文本信息。...CSS选择器主要提供select()方法获取符合条件的节点(Tag对象),然后通过节点的get_text()方法和text属性可以获取该节点的文本值。...('.fruit li')[0].get_text()) print('获取所有class为fruit节点下的第一个li节点的class属性值,注意class属性返回的是list列表,属性之间用空格分隔...歌曲排名在class为“gree-num-box”的span节点中,因为span节点是节点的子节点,获取排名的代码为:li.span.text 绿色框中A节点中是歌曲的链接和图片链接

    1.4K10

    数据获取:​网页解析之BeautifulSoup

    安装BeautifulSoup Beautiful Soup也有很多版本,不过Beautiful Soup3已经停止更新了,目前最新的都是Beautiful Soup4,而且也已经移植到bs4库中,我们安装....BeautifulSoup'> 现在就获得了一个BeautifulSoup的对象,Beautiful Soup其实是将HTML文档转换成一个复杂的树形结构,每个节点都是Python中的对象,所有对象可以归纳为...CSS选择器 Beautiful Soup中用select()方法来CSS样式的进行筛选,当然也可以筛选标签。在标签的属性中,class的属性就是当前标签的CSS样式,返回的结果同样也是list。...如果是去标签属性值,跟使用字典取值方式一样。如果是获取标签的文本,直接使用get_text()方法,可以获取到标签的文本内容。...]) #打印标签文本内容 print(links[0].get_text()) 代码结果: 第一个链接 link1.html 不管是使用lxml还是Beautiful Soup,多数结果都是获取文本内容或者是标签的属性值

    22630

    BeautifulSoup使用

    格式化代码,打印结果自动补全缺失的代码 print(soup.title.string)#文章标题 四大对象种类 Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是...Tag Tag 就是 HTML 中的标签,tag中最重要的属性: name和attributes。...一个Tag可能包含多个字符串或其它的Tag,这些都是这个Tag的子节点.Beautiful Soup提供了许多操作和遍历子节点的属性.注意: Beautiful Soup中字符串节点不支持这些属性,因为字符串没有子节点...通过点取属性的方式只能获得当前名字的第一个tag,如果想要得到所有的标签,或是通过名字得到比一个tag更多的内容的时候,就需要用到 Searching the tree 中描述的方法,比如: find_all...tag的所有tag子节点,并判断是否符合过滤器的条件 name 参数 传字符串 最简单的过滤器是字符串.在搜索方法中传入一个字符串参数,Beautiful Soup会查找与字符串完整匹配的内容,下面的例子用于查找文档中所有的

    96630

    python爬虫(三)数据解析,使用bs4工具

    """ #创建 Beautiful Soup 对象 # 使用lxml来进行解析 soup = BeautifulSoup(html,"lxml") print(soup.prettify(...)) 4 四个常用的对象: Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种: Tag NavigatableString BeautifulSoup...但是注意,它查找的是在所有内容中的第一个符合要求的标签。如果要查询所有的标签,后面会进行介绍。 对于Tag,它有两个重要的属性,分别是name和attrs。...")) (5)通过属性查找: 查找时还可以加入属性元素,属性需要用中括号括起来,注意属性和标签属于同一节点,所以中间不能加空格,否则会无法匹配到。...,然后用 get_text() 方法来获取它的内容。

    89310

    BeautifulSoup4用法详解

    注意: Beautiful Soup中字符串节点不支持这些属性,因为字符串没有子节点 tag的名字 操作文档树最简单的方法就是告诉它你想获取的tag的name.如果想获取 标签,只要用 soup.head...' get_text() 如果只想得到tag中包含的文本内容,那么可以嗲用 get_text() 方法,这个方法获取到tag中包含的所有文版内容包括子孙tag中的内容,并将结果作为...如果指定的解析器没有安装,Beautiful Soup会自动选择其它方案.目前只有 lxml 解析器支持XML文档的解析,在没有安装lxml库的情况下,创建 beautifulsoup 对象时无论是否指定使用...,用 tag.get('attr') 方法去获取它,跟获取Python字典的key一样 AttributeError: 'ResultSet' object has no attribute 'foo'...错误通常是因为把 find_all() 的返回结果当作一个tag或文本节点使用,实际上返回结果是一个列表或 ResultSet 对象的字符串,需要对结果进行循环才能得到每个节点的 .foo 属性.或者使用

    10.1K21

    Python爬虫 Beautiful Soup库详解

    这一节中,我们就来介绍一个强大的解析工具 Beautiful Soup,它借助网页的结构和属性等特性来解析网页。...有了它,我们不用再去写一些复杂的正则表达式,只需要简单的几条语句,就可以完成网页中某个元素的提取。 废话不多说,接下来就来感受一下 Beautiful Soup 的强大之处吧。 1....所以说,利用它可以省去很多烦琐的提取工作,提高了解析效率。 2. 准备工作 在开始之前,请确保已经正确安装好了 Beautiful Soup 和 lxml,如果没有安装,可以参考第 1 章的内容。...需要注意的是,列表中的每个元素都是 p 节点的直接子节点。比如第一个 a 节点里面包含一层 span 节点,这相当于孙子节点了,但是返回结果并没有单独把 span 节点选出来。...这里在 find_all() 方法中传入 text 参数,该参数为正则表达式对象,结果返回所有匹配正则表达式的节点文本组成的列表。

    25610

    BeautifulSoup4库

    Beautiful Soup 3 目前已经停止开发,推荐现在的项目使用Beautiful Soup 4。...我们可以利用 soup 加标签名轻松地获取这些标签的内容,这些对象的类型是bs4.element.Tag。但是注意,它查找的是在所有内容中的第一个符合要求的标签。...BeautifulSoup: BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,因为底层继承了Tag对象,它支持 遍历文档树 和 搜索文档树 中描述的大部分的方法...)) # 下面的兄弟们=>生成器对象 print(soup.a.previous_siblings) # 上面的兄弟们=>生成器对象 搜索文档树: find、find_all的使用: find和find_all...使用find和find_all的过滤条件: 关键字参数:将属性的名字作为关键字参数的名字,以及属性的值作为关键字参数的值进行过滤。 attrs参数:将属性条件放到一个字典中,传给attrs参数。

    1.2K10

    Python爬虫:我这有美味的汤,你喝吗

    使用Beautiful Soup 在前面的文章中已经讲过了正则表达式的使用方法了,但是如果正则表达式出现问题,那么得到的结果就不是我们想要的内容。...” 准备工作 在开始之前,确保已经安装好Beautiful Soup和lxml。如果没有安装,请参考下面的安装教程。...这样就成功创建了BeautifulSoup对象,将这个对象赋值给soup。 接下来就可以调用soup的各个方法和属性来解析这串HTML代码了。 首先,调用prettify( )方法。...因此,Beautiful Soup为我们提供了查询方法,比如:find_all()和find()等。调用它们,传入相应的参数。...获取文本 要获取文本除了之前所说的string属性,另外,还可以调用get_text()方法。

    2.4K10

    Python爬虫学习笔记之爬虫基础库

    对象的种类 Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为种 Tag , NavigableString , BeautifulSoup...字符串常被包含在tag内.Beautiful Soup用 NavigableString 类来包装tag中的字符串,通过 unicode() 方法可以直接将 NavigableString 对象转换成Unicode...注意: Beautiful Soup中字符串节点不支持这些属性,因为字符串没有子节点。... .contents 属性,因为字符串没有子节点: text = title_tag.contents[0] text.contents # AttributeError: 'NavigableString...我们打印输出 .children 看一下,可以发现它是一个 list 生成器对象 通过tag的 .children 生成器,可以对tag的子节点进行循环: print(title_tag.children

    1.8K20

    python爬虫之BeautifulSoup

    创建BeautifulSoup对象 1.4. Tag 1.4.1. 注意: 1.4.2. get 1.4.3. string 1.4.4. get_text() 1.5....你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。...Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。...,只有在此标签下没有子标签,或者只有一个子标签的情况下才能返回其中的内容,否则返回的是None具体实例如下: print soup.p.string #在上面的一段文本中p标签没有子标签,因此能够正确返回文本的内容...print soup.html.string #这里得到的就是None,因为这里的html中有很多的子标签 get_text() 可以获得一个标签中的所有文本内容,包括子孙节点的内容,这是最常用的方法

    90220

    一文入门BeautifulSoup

    你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。...提取步骤 使用Beautiful Soup4提取HTML内容,一般要经过以下两步: 处理源代码生成BeautifulSoup对象 使用find_all()或者find()来查找内容 快速入门 使用的是\...Tag对象的两个重要属性:name和attributes name 每个tag都有自己的name。如果改变tag的name属性,那么将改变当前通过BS对象生成的HTML文档 ?...的tag,所以它没有name和attribute属性。...recursive 调用tag的 find_all() 方法时,Beautiful Soup会检索当前tag的所有子孙节点,如果只想搜索tag的直接子节点,可以使用参数 recursive=False,

    3.9K00

    数据提取-Beautiful Soup

    你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。...因为 BeautifulSoup 对象并不是真正的HTML或XML的tag,所以它没有name和attribute属性.但有时查看它的 .name 属性是很方便的,所以 BeautifulSoup 对象包含了一个值为...Soup定义了很多搜索方法,这里着重介绍2个: find() 和 find_all() .其它方法的参数和用法类似,请同学们举一反三 # 5.1 过滤器 介绍 find_all() 方法前,先介绍一下过滤器的类型...,这些过滤器贯穿整个搜索的API.过滤器可以被用在tag的name中,节点的属性中,字符串中或他们的混合中 # 5.1.1 字符串 最简单的过滤器是字符串.在搜索方法中传入一个字符串参数,Beautiful...会将与列表中任一元素匹配的内容返回 #返回所有匹配到的span a标签 print(soup.find_all(['span','a'])) # 5.1.4 keyword 如果一个指定名字的参数不是搜索内置的参数名

    1.2K10
    领券