获取javascript属性值

2024-09-28 15:26:10 发布

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

我正在尝试获取javascript的值,您可以在下面看到。在

<script type="text/javascript" src="//media.flixfacts.com/js/loader.js" data-flix-distributor="7148" data-flix-language="tr" data-flix-brand="lg" data-flix-ean="8806087586213" data-flix-sku="1162559" data-flix-inpage="flix-inpage"></script>

我试过了,但没用。在

^{pr2}$

Tags: textsrccomdatatypejsscriptloader
1条回答
网友
1楼 · 发布于 2024-09-28 15:26:10

在该页面的源代码中,您可以找到以下代码:

<script>
var sFlix = document.createElement('script');
    sFlix.setAttribute('type', 'text/javascript');
    sFlix.setAttribute('src', '//media.flixfacts.com/js/loader.js');
    sFlix.setAttribute('data-flix-distributor', '7148');
    sFlix.setAttribute('data-flix-language', 'tr');
    sFlix.setAttribute('data-flix-brand', Storm.DataLayer.data.user.productBrand.toLowerCase());
    sFlix.setAttribute('data-flix-ean', Storm.DataLayer.data.user.ean);
    sFlix.setAttribute('data-flix-sku', Storm.DataLayer.data.user.productId);
    sFlix.setAttribute('data-flix-inpage', 'flix-inpage');
    document.getElementsByTagName('head')[0].appendChild(sFlix);
    setTimeout(function(){ $(document).trigger('fee.fgrid_refresh'); }, 2000);
    setTimeout(function(){ $(document).trigger('fee.fgrid_refresh'); }, 4000);
    setTimeout(function(){ $(document).trigger('fee.fgrid_refresh'); }, 6000);
    setTimeout(function(){ $(document).trigger('fee.fgrid_refresh'); }, 20000);
    $('#flix-inpage').load(function() {
    $(document).trigger('fee.fgrid_refresh');
    }); 
    setTimeout(function(){ $(document).trigger('fee.fgrid_refresh'); }, 40000);
</script>

这意味着您要查找的script标记实际上并不在收到的响应中,而是动态创建的。为了提取所需的信息,您应该查询data-flix-ean属性的源,Storm.DataLayer对象:

response.xpath('/html/head/script/text()').re(r"Storm.DataLayer.put\('ean','(.*)'\);")

相关问题 更多 >