7

一日一技:爬虫如何解析JavaScript Object?

 6 months ago
source link: https://www.kingname.info/2023/10/28/parse-json-object/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一日一技:爬虫如何解析JavaScript Object?

2023-10-28

106

342

1 分钟

我们在开发爬虫的过程中,经常发现有一些网站,会直接把数据放到HTML中的<script>标签里面。这些数据长得有点像JSON,但又有差异,如下图所示:

20231028114032.png

这种格式,我们叫做JavaScript Object。长得很像Python的字典,又很像是JSON。但是这个格式在Python里面,无论直接当字典解析,还是当JSON解析,都会报错,如下图所示:

20231028114304.png

遇到这种情况,有同学准备使用正则表达式来解析,又有同学直接放弃。

但实际上,这种数据结构,使用Yaml是可以直接解析成Python的字典。我们首先来安装一下Yaml:

pip install pyyaml

然后直接像解析JSON一样解析:

import yaml
data = '''
{
name: '青南',
salary: 999999999,
address: '上海',
pro: true
}
'''
info = yaml.safe_load(data)

运行效果如下图所示,已经直接解析成了Python的字典:

20231028114627.png

Yaml格式是JSON格式的超集,因此,使用pyyaml库也能直接解析正常的JSON:

20231028114801.png

甚至各种复杂的混合格式也能正常解析:

20231028115156.png

关于YAML格式的更多介绍,请看我以前的文章:

一日一技:不用游标卡尺,Yaml 格式5分钟入门
一日一技:如何处理配置文件中的重复值?
一日一技:优雅地加载Yaml配置文件


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK