我们在开发爬虫的过程中,经常发现有一些网站,会直接把数据放到HTML中的<script>
标签里面。这些数据长得有点像JSON,但又有差异,如下图所示:
这种格式,我们叫做JavaScript Object。长得很像Python的字典,又很像是JSON。但是这个格式在Python里面,无论直接当字典解析,还是当JSON解析,都会报错,如下图所示:
遇到这种情况,有同学准备使用正则表达式来解析,又有同学直接放弃。
但实际上,这种数据结构,使用Yaml是可以直接解析成Python的字典。我们首先来安装一下Yaml:
代码语言:javascript复制pip install pyyaml
然后直接像解析JSON一样解析:
代码语言:javascript复制import yaml
data = '''
{
name: '青南',
salary: 999999999,
address: '上海',
pro: true
}
'''
info = yaml.safe_load(data)
运行效果如下图所示,已经直接解析成了Python的字典:
Yaml格式是JSON格式的超集,因此,使用pyyaml库也能直接解析正常的JSON:
甚至各种复杂的混合格式也能正常解析: