• beautifhulsoup4的使用


    Beautiful: - 基本使用 from bs4 import BeautifulSoup

        - 解析器:
          lxml, html.parser

      soup = BeautifulSoup(解析的文档, '解析器')

      - 美化功能
      soup.prettify

    - 遍历文档树 ****
      1.直接搜索
          soup.head

      2.获取标签的名称
          soup.a.name

      3.获取标签的属性
          soup.a.attrs['href']

      4.获取标签的内容
          soup.p.text

      5.嵌套查找
          soup.p.b

      6.子节点,子孙节点
          soup.p.children
          soup.p.descendants

      7.父节点、祖先节点
          soup.a.parent
          soup.a.parents

      8.兄弟节点
          # 查找下面的兄弟
          soup.a.next_sibling
          soup.a.next_siblings

          # 查找上面的兄弟
          soup.a.previous_sibling
          soup.a.previous_siblings

    - 搜索文档树 *******
      find: 找第一个
      find_all(): 找所有
      name、attrs、text

      - 文本过滤器 *******
          根据字符串进行过滤

          soup.find(name='a')
          soup.find_all(name='p')
          soup.find_all(attrs={"id": "link2"})
          soup.find(name='a', attrs={"id": 'p'})

      - re正则过滤器
          根据正则匹配过滤

          soup.find_all(name=re.compile('a'))
          soup.find_all(attrs={'id': re.compile('k')})
        - 列表过滤器
          根据列表内的元素匹配

          soup.find_all(name=['a', 'p'])
          soup.find_all(attrs={"id": ['link', 'k']})

      - bool过滤器

          soup.find_all(name=True)
          soup.find_all(attrs={"id":True})

      - 方法过滤器

          def has_id_not_class(tag):
              if tag.has_attr('id') and not tag.has_attr('class'):
                  return tag

          soup.find_all(name=has_id_not_class)

      - 补充
          soup.find_all(id="link")
          soup.find_all(class_='sister')

     


    解析库:
    BeautifulSoup4

    - 安装:
    - 解析库安装
    pip3 install beautifulsoup4

    - 解析器安装
    pip3 install lxml

    - 基本使用
    - 导入模块
    from bs4 import BeautifulSoup

    - 调用解析库BeautifulSoup
    # 第一个参数是 解析的文本
    # 第二个参数是 解析器
    # 自动补全文档标签
    soup = BeautifulSoup(html_doc, 'lxml')
    print(soup)

    - 标签美化
    # prettify
    html = soup.prettify()
    print(html)
    soup = BeautifulSoup(html, 'lxml')
    print(soup)
    - 遍历文档树
    '''
    1、直接使用
    2、获取标签的名称
    3、获取标签的属性
    4、获取标签的内容
    5、嵌套选择
    6、子节点、子孙节点
    7、父节点、祖先节点
    8、兄弟节点
    '''

    - 搜索文档树
    - find
    查找第一个

    - find_all
    查找所有

    - 标签查找与属性查找:

    - 标签:
    - 字符串过滤器 字符串全局匹配
    name 属性匹配
    attrs 属性查找匹配
    text 文本匹配
    - 正则过滤器
    re模块匹配
    - 列表过滤器
    列表内的数据匹配
    - bool过滤器
    True匹配
    - 方法过滤器
    用于一些要的属性以及不需要的属性查找。

    - 属性:
    - class_
    - id


    配合requests模块使用:
    import requests
    res = requests.get('https://www.cnblogs.com/kermitjam/p/10863925.html')
    print(res.text)

    from bs4 import BeautifulSoup
    soup = BeautifulSoup(res.text, 'lxml')

  • 相关阅读:
    AWVS 安全渗透扫描
    Nmon 监控结果分析
    Jmeter 插件图表分析
    Nmon 安装
    子母钟系统(卫星时钟系统)在医院网络中的架设与设计
    从NTP网络授时到社交GPS千奇百怪的应用方式
    NTP网络时钟系统技术参数与详细介绍
    GPS北斗子母钟系统在某机场系统中的应用
    GPS北斗时间频率信号源的定义及简介
    ntp对时服务器同步网络中计算机详细配置
  • 原文地址:https://www.cnblogs.com/tangda/p/10960974.html
Copyright © 2020-2023  润新知