BeautifulSoup库整理

BeautifulSoup库

一.BeautifulSoup库的下载以及使用

1.下载

pip3 install beautifulsoup4

2.使用

improt bs4

二.BeautifulSoup库解析器

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

条件 :

  • bs4的HTML解析器:安装bs4库

  • lxml的HTML解析器:pip3 install lxml

  • lxml的XML解析器:pip3 install lxml

  • html5lib解析器:pip3 install html5lib

三.BeautifulSoup类的5种元素

基本元素简单说明详细说明
tag标签分别用<>与</>来表示开头和结尾
name标签的名字用法:<tag>.name输出为字符串的形式
attributes标签里的属性用法:<tag>.attrs输出为字典的形式
navigablestring标签里的内容用法:<tag>.string可以跨域多个标签层次
comment标签里面的注释一种特殊的comment类型
  • 获取标签方法,解析后的网页.标签的名字,如果同时存在多个标签只取第一个
  • 获取标签的父标签<tag>.parent
  • <tag>表示标签
  • 当标签为没有属性的时候,我们获得的是个空字典

四.标签树向下遍历

  • .contens:子节点列表,不仅仅包括标签节点,也包括字符串节点例如\n
  • .children:子节点的迭代器类型也包括字符串节点例如\n
  • descendants:子孙节点的迭代类型也包括字符串节点例如\n

五.标签树向上遍历

  • .parent:节点的父亲标签
  • .parents:节点先辈标签的迭代器类型

注意:如果是html的父标签就是他自己,soup本身也是种特殊的标签的他的父标签是空

六.标签树平行遍历

  • .next_sibling:下一个平行标签
  • .previous_sibling:上一个平行标签
  • .next_silbings:迭代器类型,向下所有标签
  • .previous_silbling:迭代器类型,向上所有标签

注意:必须在同一个父节点下才有平行关系,平行遍历获得的对象不一定是标签,也可能是文本,如果上下没来就为空

七.prettify使得解析后页面更加好看

解析后的页面

prettify():会把解析的网页加上\n的文本文档,能使它打印变得更加好看

    原文作者:小小咸鱼YwY
    原文地址: https://www.cnblogs.com/pythonywy/p/11134481.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞