zoukankan      html  css  js  c++  java
  • BeautifulSoup的重要操作

    BeautifulSoup相关概念总结:https://www.cnblogs.com/pythonywy/p/11134481.html

    css基础以及选择器基础:https://www.cnblogs.com/pythonywy/p/11266221.html

    css选择器进阶:https://www.cnblogs.com/pythonywy/p/11276513.html

    一.BeautifulSoup的重要操作

    • 解析页面

      • 最常用rp_lxml= BeautifulSoup(response.text,'lxml')其他可以转至概念
    • 提取元素

      主要有4大元素

      • Tag: HTML 中的一个个标签
      • NavigableString:可以遍历的字符串
      • BeautifulSoup:BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag
      • Comment:Comment 对象是一个特殊类型的 NavigableString 对象,其实输出的内容仍然不包括注释符号。
    • 元素操作

    二.Tap对象相关操作

    1.对于tap的选取

    1.find

    使用re_lxml.find('css选择器')

    重点只选择第一个出现的

    2.select

    使用re_lxml.select('css选择器')

    重点会把满足CSS选择器所有内容都显示出来,输出为列表的形式

    3.直接操作

    使用re_lxml.标签名.标签名而不是用css选择器

    重点只选择第一个出现的

    4.find_all

    会把满足CSS选择器所有内容都显示出来,输出为列表的形式

    但是有几个优点

    • 使用多个指定名字的参数可以同时过滤tag的多个属性

      rp_lxml.find_all('属性1','属性2')

    • 要某个标签中其中某个属性

      rp_lxml.find_all('标签名',class_='属性')

    • 定义一个字典参数来搜索包含特殊属性的tag

      rp_lxml.find_all(attrs={'属性名':'属性值'})

    2.对于tap的操作

    1.标签之间的转换

    详情至BeautifulSoup概念

    2.选取的元素相关操作

    • tap.text:内容的文本

    • tap.name:标签名字

    • tap.attrs:标签的属性

    • tap..标签p.attrs:标签内标签p的属性

    • tap.['属性名']:标签的指定属性对应的内容

    • tap.标签p.['属性名']:标签内标签p的指定属性属性

    • tap.get('属性名'):标签的指定属性对应的内容

    • tap.标签p.get('属性名'):标签内标签p的指定属性属性

    三.NavigableString对象相关操作

    NavigableString.string即可获取标签内部的文字

    四.BeautifulSoup对象相关操作

    他是一种特殊的Tap所有tap可以的操作他都可以

    rp_lxml.attrs为{}

    rp_lxml.name为[document]

    剩下的可以去尝试不过个人感觉没啥意义

    五.Comment对象相关操作

    我觉得吧一个可以用用就是判断他是不是这个数据类型

    print(type(未知对象.string))看他是不是comment对象

  • 相关阅读:
    Tomcat 7 的七大新特性 悟寰轩
    MapReduce提交作业常见问题 悟寰轩
    [MQ]关于ActiveMQ的配置 悟寰轩
    LinkedBlockingQueue应用实例 悟寰轩
    什么是java序列化,如何实现java序列化? 悟寰轩
    远程注入DLL的例子
    回调函数实例
    将网页保存为Stream
    删除文件或文件夹
    选择目录
  • 原文地址:https://www.cnblogs.com/pythonywy/p/11308818.html
Copyright © 2011-2022 走看看