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

总结 BeautifulSoup

1.BeautifulSoup4 支持python标准库(html.parser)、lxml、html5lib这些解析器解析文档。

2.格式化输出文档内容 print soup.prettify(),会自动补全文档。

3.BeautifulSoup4将复杂的html文档转换成一个复杂的树形结构,每一个节点是python对象,所有的对象有四种:Tag、NavigableString、BeautifulSoup、Comment。

4.Tag查找的是文档中第一个符合内容的标记,有两个属性:name和attrs,分别为获取标记的名称和属性,.attrs返回的是字典类型,也可以用[]和get()来获取特定的属性内容。

5.NavigableString表示的是标记内部的字符串,可以用.string来获取。

6.BeautifulSoup表示的是文档的全部内容,.name返回的是[document],.attrs返回的是{}。

7.Comment表示的是文档的注释内容,用.string可以获取去掉注释符号的注释内容,可以用type() == bs4.element.Comment来判断该字符串是否为注释。

8.BeautifulSoup将html文档转换为文档树,支持子节点、父节点、兄弟节点和前后节点进行遍历文档树。

9.获取子节点的属性有contents、children、descendants。contents以列表的形式返回直接子节点信息;children返回的是直接子节点迭代器,可以用for in循环遍历;descentants返回的子孙节点迭代器,可以用for in循环遍历。

10.获取子节点内容的属性有string、strings、stripped_strings。string返回的是标记最内部的内容;strings返回的是标记内部字符串的迭代器,可以用for in循环遍历,包括空格和换行;stripped_string是去掉strings中的空格和换行。

11.获取节点的父节点的属性是parent,获取节点的父辈节点的属性是parents,返回父辈节点的迭代器,可以使用for in循环遍历。

12.获取节点的兄弟节点的属性有next_sibling,next_siblings和previous_sibling,previous_siblings。节点的兄弟节点包括字符串节点(字符串、空格、换行)。

13.获取节点的前后节点的属性有next_element,next_elements和previous_element,previous_elements。同样前后节点也包括字符串节点。

14.搜索文档树的方法主要是一系列find方法,以列表的形式返回。以find_all(name, attrs, recursive, text,limit, **kwargs)为例,其中name参数以节点的名称来搜索文档树;attrs参数以节点的属性信息来搜索文档树,以字典形式给出;text参数以节点的内容来搜索文档树;kwargs参数可以以不是python内置的关键字参数来搜索文档树,包括标记的class属性,id属性等。name、attrs、text、kwargs参数支持字符串、正则表达式、列表、TRUE(匹配任何值)。recursive参数为False时,BeautifulSoup会搜索直接子节点,limit会限制BeautifulSoup搜索节点的个数。

15.BeautifulSoup还支持CSS语法来搜索文档树,使用的方法是select(),返回的类型是列表类型。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190113G0Q1NF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券