首页 > 解决方案 > 如何使用正则表达式从复杂且动态的 JavaScript 样式字典中提取特定值?

问题描述

我有一个从 HTML 网页检索到的大量 JS 字典,我想从中提取数据而不解析 Javascript。目前我正在尝试使用正则表达式来实现这一点。

问题是字典非常复杂和动态,这意味着有时我可以找到一些插入的新键,但我希望我的目标键保持不变。

这是经过高度修剪的数据,省略了一些值,但它保持了复杂性。

{"compactVideoRenderer":{"videoId":"abcDE123-_","thumbnail":{"thumbnails":[{"url":"OMMITED_URL","width":168,"height":94},{"url":"OMMITED_URL_TWO","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"OMMITED_TITLE"}},"simpleText":"OMMITED_TITLE_SIMPLE"}}}

从上面,我需要提取以下值:

解决方案必须足够灵活,如果我在任何位置插入另一个键值对(只要它不更改目标键的“地址”),正则表达式应该仍然能够找到目标值。

由于正则表达式在编程语言方面是通用的,因此任何语言的代码都会有所帮助,但是 Python 中的代码或建议会更有帮助!

标签: javascriptpythonregexdictionaryweb-scraping

解决方案


使用https://pypi.org/project/jsonfinder/从 HTML 字符串中提取 JSON 对象。然后你可以使用普通的 Python 字典。不需要正则表达式。


推荐阅读