一、信息组织方式
HTML(Hyper Text Markup Languange)
HTML是www的信息组织方式
以<>…</>的形式,将超文本(图片,视频,声音)陷入到文本中
二、 信息标记的三种方法
1.XML(eXtensible Markuo Language)
<name attribute>...</name> #标签 中有内容
<name /> #标签中无内容
<!--This is a comment,very useful--> #添加注释
3.JSON(JavaScript Object Notation)
用 有类型的键值对 key:value 标记信息
字符串用"" eg:“name”:“value”
数字就不用“”
当值中多个信息,用[…,…]表示 eg “name”:[value1,value2]
键值对可以嵌套,用{…,…},eg “key”:{“subkey1”:“value1”,“subkey2”:“value2”}
YAML(YAML Ain’t Markup Language)
无类型键值对 key:value
无双引号,所属关系用缩进表达,用减号-表达并列关系,用竖线|表达整块数据,#表达注释
eg:
text: | #学校介绍
吉林大学创立于1946年,位于吉林省省会长春,是教育部直属、中央直接管理的综合性研究型全国重点大学,国家“双一流”、“211工程”、“985工程”重点建设,入选珠峰计划、2011计划、111计划、卓越法律人才教育培养计划、卓越工程师教育培养计划、卓越医生教育培养计划、卓越农林人才教育培养计划、国家建设高水平大学公派研究生项目、国家大学生创新性实验计划、新工科研究与实践项目、国家级大学生创新创业训练计划、国家创新人才培养示范基地、全国深化创新创业教育改革示范高校、中国政府奖学金来华留学生接收院校,首批建立研究生院的22所大学之一,是亚太国际教育协会、21世纪学术联盟、中俄交通大学联盟、粤港澳大湾区物流与供应链创新联盟重要成员。
一般的几种形式:
key:value
key:#Comment
-value1
-value2
key:
subkey:subvalue
三、信息提取的一般方法
1.完整解析信息的标记形式,再提取关键信息
XML JSON YAML
需要标记解析器 eg:bs4库的标签树遍历
2.无视标记形式,直接搜索关键信息
需要文本查找函数
3.融合方法
融合方法:结合形式解析与搜索方法,提取关键信息
XML JSON YAML 搜索
需要标记解析器及文本查找函数
四、检索函数find
1.<>.find_all(name,attrs,recursive,string,**kwargs)
返回一个列表类型,存储查找的结果
name:对标签名称的检索字符串(单一:‘tag’ 多个:[‘tag1’,‘tag2’] 全部标签:True)a
attrs:对标签属性值的检索字符串,可标注属性检索
recursive:是否对子孙全部检索,默认是True,若只想搜索当前节点的子节点:recursive=False
sring:<>…</>中字符串区域的检索字符串
注:检索时,需要精确赋值检索信息,若想通过部分信息检索全部信息,则需正则表达式,例如:
import re
soup.find_all(string=re.compile("a")) #检索soup中字符串区域中全部包含a的字符串
2.find_all()的简写形式:
(…) 等价于.find_all(…)
3.扩展方法
<>.find()
<>.find_parents()
<>.parent()
<>.find_next_siblings()
<>.find_pervious_siblings()
<>.find_next_sibling()
<>.find_previous_sibling()
区别仅在于检索区域不同