如何使用python bs4提取javascript变量

8qgya5xd  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(823)
<script type="text/javascript">var csrfMagicToken = "sid:bf8be784734837a64a47fcc30b9df99,162591180";var csrfMagicName = "__csrf_magic";</script>

上面的脚本标记来自一个网页。

script = soup.find_all('script')[5]

通过使用上面的代码行,我能够提取我想要的脚本标记,但我需要提取python脚本中变量的值,我在python脚本中使用beautifulsoup来提取数据。

u3r8eeie

u3r8eeie1#

你可以用

(?:var|let)\s+(\w+)\s*=\s*"([^"]+)"

请参阅regex101.com上的演示。
注意:但是,在代码中使用正则表达式通常有几个缺点。e、 与上面一样 let x = -10; 不匹配,但完全有效 JavaScript 代码。此外,单引号还不受支持——它完全取决于您的实际输入。
也就是说,你可以选择:

(?:var|let)\s+
(?P<key>\w+)\s*=\s*
(['"])?(?(2)(?P<value1>.+?)\2|(?P<value2>[^;]+))

请参阅regex101.com上的另一个演示。
这仍然让您无法抵抗这样的转义引用 let x = "some \" string"; 或针对注解中的变量声明。一般来说,您更喜欢解析器解决方案。

相关问题