Im Quellcode für die Seite Sie das folgende Stück Code finden:
<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>
was bedeutet den script
Tag, das Sie suchen ist nicht wirklich in der empfangenen Antwort, es dynamisch erstellt werden . Um die benötigten Informationen zu extrahieren, sollten Sie die Quelle des data-flix-ean
Attribut abfragen, die Storm.DataLayer
Objekt:
response.xpath('/html/head/script/text()').re(r"Storm.DataLayer.put\('ean','(.*)'\);")
Wo ist die Seite, die Sie versuchen zu kratzen? Wir haben keine Möglichkeit zu wissen, was mit Ihrem XPath nicht stimmt, wenn die Seitenquelle nicht angezeigt wird. – Chris
Ich versuche nur, ein Attribut von diesem Tag zu bekommen. Ich bekomme dieses Tag bereits. Aber ich get Daten-flix-ean Attribut benötigen –
... was ist die URL der Seite, die Sie versuchen zu kratzen. Wie die URL dieser Seite ist http://stackoverflow.com/questions/41198101/scrapy-get-value-of-javascript-attribute – YPCrumble