为了账号安全,请及时绑定邮箱和手机立即绑定

使用蟒蛇x路径将 Javascript 数组作为键值对读取

使用蟒蛇x路径将 Javascript 数组作为键值对读取

潇湘沐 2022-09-20 15:17:32
如何使用蟒蛇xpath将下面的Javascript数组作为键值对读取?在蟒蛇中,Output将是[“id”,“359521”,“名称”,“HO1迷你简报HO1”等]可能在1中去获取一个python列表元素,我可以在其中访问数据帮助赞赏以公文形式写成的<script type="text/javascript">        var wcIsGtm = false;    var productImpressions = [];    var promoImpressions = [];    var wcGuaTrackerName = '';    var wcGuaGlobalTrackerName = 'allstores.';    var wcGuaGlobalTrackerEnabled = '0';    var referralExclusionList = [];    if(document.referrer) {        for(excludedDomain in referralExclusionList) {            if(document.referrer.indexOf(excludedDomain) != -1) {                document.referrer = '';            }        }    }        (function(w,e,b,c,oo,ki,ng){w['GoogleAnalyticsObject']=oo;w[oo]=w[oo]||function(){        (w[oo].q=w[oo].q||[]).push(arguments)},w[oo].l=1*new Date();ki=e.createElement(b),        ng=e.getElementsByTagName(b)[0];ki.async=1;ki.src=c;ng.parentNode.insertBefore(ki,ng)        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');    ga('create', 'UA-19354276-10', 'auto');ga('require', 'ec');ga('set', '&cu', 'EUR');             var productDetail = {                 'id': '359521',                 'name': 'HO1 mini-briefs HO1',                 'category': 'Collection HOM Basics/Slips',                 'brand': '',                 'price': '10.4',                 'variant': ''             };             ga('ec:addProduct', productDetail);             ga('ec:setAction', 'detail');ga('send', 'pageview');</script><meta property="og:locale" content="en_US" /><meta property="og:title" content="HO1 mini-briefs HO1" /><meta property="og:type" content="product" />另一个例子是    var AWACP_CONFIG = {        mageVersion: '1.9.3.1',        useProgress : 1,        popupForAllProducts : 0,        addProductConfirmationEnabled : 1,        removeProductConfirmationEnabled : 1,        dialogsVAlign: 'center',        cartAnimation: 'opacity',        addProductCounterBeginFrom : 0,        removeProductCounterBeginFrom : 0,        hasFileOption : false    };
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

如果我对你的理解是正确的,你可以做下面这样的事情。请注意,xpath在这里不起作用,正则表达式是有问题的。因此,我认为,最干净的方法是使用字符串操作和字典。


对于第一个:


arr = """your first html example"

splt_str = 'var productDetail = {'

trg = arr.split(splt_str)[1].split('}')[0].split(',')

stf = {}

for t in trg:

    entry = t.strip().replace("'","").split(':')

    stf[entry[0]]= entry[1]

for k, v in stf.items():

    print(k, v)

输出:


id  4002021

name  Tommy string

category  Collection Brand Basics

brand  

price  8.31

variant  

对于第二行,将前两行更改为:


arr = """your second html example"

splt_str = 'var AWACP_CONFIG = {'

输出:


mageVersion  1.9.3.1

useProgress   1

popupForAllProducts   0

addProductConfirmationEnabled   1

removeProductConfirmationEnabled   1

dialogsVAlign  center

cartAnimation  opacity

addProductCounterBeginFrom   0

removeProductCounterBeginFrom   0

hasFileOption   false


查看完整回答
反对 回复 2022-09-20
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信