zoukankan      html  css  js  c++  java
  • python关于信息标记的三种形式

    1,  信息标记的目的:

        1.1  信息结构增强,信息维度增加;

        1.2  信息内容易于通信,存储,理解,应用; 

    2,信息标记的三种形式:

        2.1  XML:extensible Markup Language,扩展标记语言;

                2.1.1  形式:是一种以标签来标记信息的形式,基于HTML语言后发展出的通用形式;

                2.1.2  目的:主要用于Internet上的信息交互与传递;

                2.1.3  特点:最早的信息标记语言,可扩展性好,但繁琐;

                2.1.4  语法:<name  attrs='sth'  attrs1='sth'>...NavigibleString...</name>

                                     <!--  comment  -->

                                     </name> 

        2.2  JSON:JavaScript Object Notation,

                2.2.1  形式:有类型的键值对(用双引号标记信息类型)构建的信息表达形式;

                2.2.2  目的:主要用于移动应用云端和节点的信息通信,比如程序的接口处理时;

                2.2.3  特点:信息有类型,面向对象,有JS语言扩展出的标记形式,适合程序处理,无注释;

                2.2.4  语法:(1) 正常键值对   "key" : "value"  

                                     (2) 多值键值对   "key" : [ "value1" , "value2" ] 

                                     (3) 嵌套键值对   "key" : { "subkey1":"subvalue1" , "subkey2":"subvalue2" }

                                     键常指类的名字,值如果是数字则可以省略双引号;

        2.3  YAML: Ain't Markup Language,无类型键值对标记语言;(起初叫做Yet Another Markup Language)

                2.3.1  形式:无类型的键值对构建信息的表达形式;

                2.3.2  目的:用于各类系统的配置文件;

                2.3.3  特点:信息无类型,文本信息比例高,有注释可读性好;

                2.3.4  语法:(1)用缩进格式表达所属关系:key:

                                                                                    subkey1:subvalue1

                                                                                    subkey2:subvalue2

                                     (2)用并列格式表达并列关系:key:

                                                                                           value1

                                                                                           value2

                                     (3)用 | 表示数据是块数据,#表示注释: key :|          #comment

                                                                                                     .......

    3,信息提取的三种一般方法:

        3.1  形式解析:完整解析信息的标记形式,再提取关键信息;

                3.1.1 特点:需要使用标记解析器,例如bs4库的标签树遍历;

        3.2  搜索解析:无视标记信息,直接搜索关键信息;

                3.2.1 特点:需要使用文本查找函数;

        3.3  综合解析:结合形式解析与搜索解析,再提取关键信息;

               3.3.1 特点:需要使用标记解析器与文本查找函数;

    4,基于bs4库的HTML内容查找方法:

        4.1  soup.find_all(name,attrs,recursive,string,**kwargs)

                4.1.1 意义:通过参数 搜索对象中(使用soup变量表示对象)相应的信息,以列表形式返回查找结果;

                4.1.2 soup.find_all('name') :以列表形式返回所有的name标签;

                         soup.find_all( [ 'name1' , 'name2' ] ) : 以列表形式返回所有的name1标签和name2标签;

                4.1.3 soup.find_all( 'name','attrs_value') :以列表形式返回name标签中属性值包含sttrs_value的所有标签;

                          soup.find_all(id='value1') :以列表形式返回id属性中值为value1的所有标签;  

                4.1.4 soup.find_all('name',recursive=True) :默认为True,表示默认对soup对象的子孙节点进行搜索;False表示只搜索soup对象的子节点;

                4.1.5 soup.find_all(string="Data") :以列表形式返回包含Data的所有NavigibleString元素;

                4.1.6 以下七种扩展方法与soup.find_all()方法具有相同语法:

                         (1)soup.find() :以字符串形式返回一个搜索结果;

                         (2)soup.find_parent() :以字符串形式返回一个父辈节点中的搜索结果;

                         (3)soup.find_next_sibling() :以字符串形式返回一个后序平行节点中的搜索结果;

                         (4)soup.find_previous_sibling() :以字符串形式返回一个前序平行节点中的搜索结果;

                         (5)soup.find_parents() :以列表形式返回先辈节点中的所有搜索结果;

                         (6)soup.find_next_siblings() :以列表形式返回后序平行节点中的所有搜索结果;

                         (7)soup.find_previous_siblings() :以列表形式返回前序平行节点中的所有搜索结果;

                 4.1.7 name()等价于name.find_all()

        

  • 相关阅读:
    Android UI之LinearLayout详解
    在zxing开源项目里,camera.setDisplayOrientation(90)出现错误
    DjangoORM获取值的不同类型
    DjangoORM操作数据库
    Django的URL写法
    创建django项目的基础命令&知识(一)
    python读取EXCEL的某一列,并保存到txt文本中
    后台管理页面基础布局HTML+CSS
    使用yaml格式进行接口测试报错
    常见的sql语句练习
  • 原文地址:https://www.cnblogs.com/caesura-k/p/9669502.html
Copyright © 2011-2022 走看看