如何从stcipt var中提取特定数据?

2024-10-03 11:22:06 发布

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

下面是我想从中提取数据的页面的html代码的一部分

<script type="text/javascript">
var productOptInfo = {
        prdNo: "3385792003",
        //lastPrc : 497500,
        optCnt: 5,
        selOptCnt: 3,
        entOptCnt: 2,
        selOptTyp: "01",
        optItemNms: 
        isOptCalc: false,
        isNotOptPrd: false,
        totStockQty: 9999,
        totPrdStckNo: "12951427057",
        totPrdPrc: "0",
        defaultOptQty: "1",
        optCheckStatus: "OK",
        orderOptArr: [],
        orderAddPrdArr: [],
        orderRecmPrdArr: [],
        isHighPrice: false,
        SPLIT_SEPARATOR: ":∥:"
    };

我的代码是

import requests
from bs4 import BeautifulSoup
import re

url1 = 'http://www.11st.co.kr/products/3167879989'

req = requests.get(url1).text
soup = BeautifulSoup(req, 'lxml')
js = soup.find_all('script')[27].string
m = re.search(r'var productOptInfo = (.*?);', js, re.S).group(0)
print(m)

如何提取“optCnt”、“selOptCnt”和“entOptCnt”的值?? 我想得到值5,3,2


Tags: 代码textimportrefalsevarscriptrequests
1条回答
网友
1楼 · 发布于 2024-10-03 11:22:06

您可以安装demjson模块:https://pypi.org/project/demjson/并使用它来解析javascript对象——在这个实例中,您将得到一个字典

# note it's group(1)

m = re.search(r'var productOptInfo = (.*?);', js, re.S).group(1)
j = demjson.decode(m)

>>> j['optCnt']
2
>>> j['prdNo']
'3167879989'

相关问题 更多 >