一日一技:爬蟲如何解析JavaScript Object?
我們在開發(fā)爬蟲的過程中,經常發(fā)現有一些網站,會直接把數據放到HTML中的<script>標簽里面。這些數據長得有點像JSON,但又有差異,如下圖所示:
圖片
這種格式,我們叫做JavaScript Object。長得很像Python的字典,又很像是JSON。但是這個格式在Python里面,無論直接當字典解析,還是當JSON解析,都會報錯,如下圖所示:
圖片
遇到這種情況,有同學準備使用正則表達式來解析,又有同學直接放棄。
但實際上,這種數據結構,使用Yaml是可以直接解析成Python的字典。我們首先來安裝一下Yaml:
pip install pyyaml
然后直接像解析JSON一樣解析:
import yaml
data = '''
{
name: '青南',
salary: 999999999,
address: '上海',
pro: true
}
'''
info = yaml.safe_load(data)
運行效果如下圖所示,已經直接解析成了Python的字典:
圖片
Yaml格式是JSON格式的超集,因此,使用pyyaml庫也能直接解析正常的JSON:
圖片
甚至各種復雜的混合格式也能正常解析:
圖片