zoukankan      html  css  js  c++  java
  • 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:子节点列表,不仅仅包括标签节点,也包括字符串节点例如
    • .children:子节点的迭代器类型也包括字符串节点例如
    • descendants:子孙节点的迭代类型也包括字符串节点例如

    五.标签树向上遍历

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

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

    六.标签树平行遍历

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

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

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

    解析后的页面

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

  • 相关阅读:
    设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数
    数状数组
    25匹马,每次能5匹一起跑,选出最快的3匹
    禁止ImageCapture自动启动
    SublimeText Videos Notes
    10G个64bit整数,找出中位数
    python初步要点II
    python初步要点
    找出丢失的数字
    nice & renice
  • 原文地址:https://www.cnblogs.com/pythonywy/p/11134481.html
Copyright © 2011-2022 走看看