如何使用正则表达式提取Javascript值?

2024-06-16 12:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从以下Javascript位提取ProductValue

<script language="javascript" type="text/javascript">
lpAddVars('page','Section','womens');
lpAddVars('page','CartTotal','0.00');

    lpAddVars('page','ProductID','43577');
    lpAddVars('page','ProductValue','128.00');  

</script>

我不认为Beautiful Soup解析javascript,所以我认为最好的方法可能是使用正则表达式,但我对re非常陌生,到目前为止,我所做的一切似乎都不起作用。有什么建议或帮助吗?在

谢谢!在


Tags: texttypepagescriptsectionjavascriptlanguagesoup
2条回答
/'ProductValue'\s*,\s*(.*?)\s\)/

这应该是有效的:

import re

javascript_text = '''
    <script language="javascript" type="text/javascript">
    lpAddVars('page','Section','womens');
    lpAddVars('page','CartTotal','0.00');

        lpAddVars('page','ProductID','43577');
        lpAddVars('page','ProductValue','128.00');  

    </script>
'''

product_value = re.findall(r"ProductValue.*,['|\"](.*)['|\"]", javascript_text)

# at this point, product_value = ['128.00']

那么“ProductValue.*”、“|\”['|\“]”到底在做什么呢?在

“ProductValue.*,“|\”['| \“]”

ProductValue只是您要搜索的文本字符串

.*我们需要任意数量的字符,所以空格、单引号等等

,我们将停止允许“.*”匹配所有字符,一旦到达“,”

['| \“]我们想要匹配单引号或双引号

(.*)这是我们真正感兴趣的位,可以是任何字符

['| \“]再次,我们将停止“.*”一旦我们到达结束单引号或双引号

从现在开始,我会做一些类似的事情:

^{pr2}$

相关问题 更多 >