zoukankan      html  css  js  c++  java
  • python网络爬虫与信息提取——4.Beautiful Soup库入门

    1.Beautiful Soup库的安装

    Win平台: “以管理员身份运行”cmd执行 pip install beautifulsoup4

    from bs4 import BeautifulSoup
    导入以缩写bs4为库名

    2.soup = BeautifulSoup('需要解析的html代码', 'html.parser解析器')

    3.beautifulsoup库的基本元素

    BeautifulSoup对应一个HTML/XML文档的全部内容

    (1)Beautiful Soup库解析器

    bs4的HTML解析器 BeautifulSoup(mk,'html.parser') 安装bs4库
    lxml的HTML解析器 BeautifulSoup(mk,'lxml') pip install lxml
    lxml的XML解析器 BeautifulSoup(mk,'xml') pip install lxml
    html5lib的解析器 BeautifulSoup(mk,'html5lib') pip install html5lib

    (2)BeautifulSoup类的基本元素

    Tag 标签,最基本的信息组织单元,分别用<>和</>标明开头和结尾
    Name 标签的名字,<p>…</p>的名字是'p',格式:<tag>.name
    Attributes 标签的属性,字典形式组织,格式:<tag>.attrs
    NavigableString 标签内非属性字符串,<>…</>中字符串,格式:<tag>.string
    Comment 标签内字符串的注释部分,一种特殊的Comment类型

    任何存在于HTML语法中的标签都可以用soup.<tag>访问获得当HTML文档中存在多个相同<tag>对应内容时,soup.<tag>返回第一个

    4.基于bs4库的HTML内容遍历方法

    (1)标签树的下行遍历

    .contents 子节点的列表,将<tag>所有儿子节点存入列表
    .children 子节点的迭代类型,与.contents类似,用于循环遍历儿子节点
    .descendants 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历

    BeautifulSoup类型是标签树的根节点

    for child in soup.body.children:
        print(child)遍历儿子节点

    for child in soup.body.descendants:
        print(child)遍历子孙节点

    (2)标签树的上行遍历

    .parent 节点的父亲标签
    .parents 节点先辈标签的迭代类型,用于循环遍历先辈节点

    (3)标签树的平行遍历

    .next_sibling 返回按照HTML文本顺序的下一个平行节点标签
    .previous_sibling 返回按照HTML文本顺序的上一个平行节点标签
    .next_siblings 迭代类型,返回按照HTML文本顺序的后续所有平行节点标签
    .previous_siblings 迭代类型,返回按照HTML文本顺序的前续所有平行节点标签

    for sibling in soup.a.next_sibling:
        print(sibling)遍历后续节点
    for sibling in soup.a.previous_sibling:
        print(sibling)遍历前续节点


    5.bs4库的prettify()方法

    .prettify()为HTML文本<>及其内容增加更加' '
    .prettify()可用于标签,方法:<tag>.prettify()

    bs4库将任何HTML输入都变成utf‐8编码Python 3.x默认支持编码是utf‐8,解析无障碍

  • 相关阅读:
    《DSP using MATLAB》 示例 Example 9.12
    《DSP using MATLAB》示例 Example 9.11
    《DSP using MATLAB》示例 Example 9.10
    《DSP using MATLAB》示例Example 9.9
    《DSP using MATLAB》示例 Example 9.8
    《DSP using MATLAB》示例Example 9.7
    《DSP using MATLAB》示例 Example 9.6
    《DSP using MATLAB》示例Example 9.5
    《DSP using MATLAB》示例 Example 9.4
    (转载)【C++11新特性】 nullptr关键字
  • 原文地址:https://www.cnblogs.com/Wang-Y/p/8477877.html
Copyright © 2011-2022 走看看