Python的信息组织和提取

1、信息标记的三种形式
①XML(eXtensible Markup Language)

②JSON(Javascript Object Notation)
有类型的键值对 key:value 如:”name”: “test”
③YAML(Ain’t Markup Language)
无类型键值对 key:value name: test
| 表示整块数据 # 表示注释 - 表示并列的值信息

	标记后的信息可形成信息组织结构,增加了信息维度
	标记后的信息可用于通信、存储或展示
	标记后的结构与信息一样具有重要价值
	标记后的信息更利于程序理解和运用

2、三种信息标记形式的比较
XML:最早的通用信息标记语言,可扩展性好,但繁琐。Internet上的信息交互与传递。

<person>
	<firstName>Tian</firstName>
	<lastName>Song</lastName>
	<address>
		<streetAddr>中关村南大街5号</streetAddr>
		<city>北京市</city>
		<zipcode>100081</zipcode>
	</address>
	<prof>Computer System</prof>
	<prof>Security</prof>
</person>
JSON:信息有类型,适合程序处理(js),较XML简洁。移动应用云端和节点的信息通信,无注释。
{
	"firstName": "Tian",
	"lastName": "Song",
	"address": {
		"streetAddr": "中关村南大街5号",
		"city": "北京市",
		"zipcode": "100081"
	},
	"prof": ["Computer System", "Security"]
}
YAML:信息无类型,文本信息比例最高,可读性好。各类系统的配置文件,有注释易读。
	firstName: Tian
	lastName : Song
	address  :
	streetAddr : 中关村南大街5号
	city	   : 北京市
	zipcode    : 100081
	prof		   :
	-Computer System
	-Security

3、信息提取的一般方法

(1)完整解析信息的标记形式,再提取关键信息(需要标记解析器,如bs4库的标签树遍历)
	①优点:信息解析准确
	②缺点:提取过程繁琐,速度慢
(2)无视标记形式,直接搜索关键信息(对信息的文本查找函数即可)
	①优点:提取过程简洁,速度较快
	②缺点:提取结果准确性与信息内容相关
(3)融合方法(结合形式解析与搜索方法,提取关键信息,需要标记解析器及文本查找函数)
(4)实例(提取HTML中所有URL链接)
	①思路
		1)搜索到所有<a>标签
		2)解析<a>标签格式,提取href后的链接内容
	②代码
		from bs4 import BeautifulSoup
			soup = BeautifulSoup(demo, “html.parser”)
			for link in soup.find_all(‘a’):
			print(link.get(‘href’))

4、基于bs4库的HTML内容查找方法
(1)<>.find_all(name, attrs, recursive, string, **kwargs)
注:返回一个列表类型,存储查找的结果,(…) = .find_all(…) soup(…) = soup.find_all(…)
①name:对标签名称的检索字符串
②attrs:对标签属性值的检索字符串,可标注属性检索
③recursive:是否对子孙全部检索,默认True
④string:<>…</>中字符串区域的检索字符串
(2)<>.find():搜索且只返回一个结果,字符串类型,同.find_all()参数
(3)<>.find_parents():在先辈节点中搜索,返回列表类型,同.find_all()参数
(4)<>.find_parent():在先辈节点中返回一个结果,字符串类型,同.find_all()参数
(5)<>.find_next_siblings():在后续平行节点中搜索,返回列表类型,同.find_all()参数
(6)<>.find_next_sibling():在后续平行节点中返回一个结果,字符串类型,同.find_all()参数
(7)<>.find_previous_siblings():在前序平行节点中搜索,返回列表类型,同.find_all()参数
(8)<>.find_previous_sibling():在前序平行节点中返回一个结果,字符串类型,同.find_all()参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值