Amazon Bestellungen Exportieren (the hard way)

Ich habe einige Käufe mit Amazongutscheinen getätigt, wodurch der Preis als EUR 0,00 angezeigt wird, und mir somit keine richtige Summe berechnet wird.
Könntest du dies anpassen und beheben? Falls du eine Gegenleistung dafür möchtest, wäre ich bereit dir eine kleine Summe zu bezahlen.


mit freundlichen Grüßen
 
Das Script schaut sich ja nur die Bestellübersichtsseiten an (nicht die Bestelldetails). Wenn darin der Gutscheinwert nicht enthalten ist, dann lässt sich dieser auch nicht ohne weiteres auslesen.
 
Wenn darin der Gutscheinwert nicht enthalten ist, dann lässt sich dieser auch nicht ohne weiteres auslesen.
Steht nur auf der Detailseite - ist 0 € in der Übersicht.

Man müsste die letzte Summe bei "Geschenkgutschein(e)" als plus nehmen und dann gäbe es noch den Fall, dass das Geschenkguthaben nicht ausreicht, um die komplette Summe zu zahlen dann würde bei "Gesamtsumme" noch ein Betrag stehen.

Grüße, psp
 
Hallo Zusammen,

trotz Downgrade auf FF 56.0.2 (64 Bit) komme ich nicht zu der gewünschten Liste.
Bei mir öffnen sich ebenfalls nur zwei Tabs. Einmal die Amazon Bestellhistorie und ein leerer Tab. Mehr passiert dann leider nicht.

Betriebssystem ist Windows 10 Pro ebenfalls 64 Bit. Habt Ihr noch eine Idee an welcher Schraube man drehen muss damit es funktioniert?

Danke für Eure Hilfe vorab :-)
 
Im FF 57.0.2 funktioniert das Script bei mir auch nicht mehr. Hab aber erst im Januar wieder Zeit da reinzuschauen.
 
Wäre klasse wenn Du es ggf. nochmal anpassen könntest.
Denke ich bin nicht der einzige für den das Thema interessant ist :-)
Frohe Weihnachten vorab :-)
 
Hallo, erstmal vielen Dank für dein tolles Skript, Ich liebe es!!

Beim heutigen Export ist mir aufgefallen, dass die Produktbeschreibungen nun fehlen, da hat Amazon wohl was geändert (siehe Attachment).

Eine Verbesserung hätte ich noch: beim CSV-Export wäre es toll weitere Felder dabei zu haben (ich habe es für mich modifiziert) wie z.B. Datum;BestellNr;Beschreibung;Preis;Produkte

amz.JPG
 
Kannst Du vielleicht noch Angaben zum verwendeten Browser inkl. Version sagen? Bei mir läuft es nach wie vor leider nicht :-(
 
Ja, leider bei mir auch nur noch weisse Seite und Standardbestellübersicht , trotz aller empfohlenen Tricks, alter Firefox Version etc...
Das Tool war so toll...schnüff :( .
Lade Dich zum Muntermachen auch gerne auf einen Latte Macchiato ein - Goetheplatz! :coffee: :D
 
Hätte ich einen Amazon Account, hätte ich diese Software schon lange in Add-on oder Kompatibeles Skript gebrannt oder zumindest es umgeschrieben, aber da ich keinen Amazon Account habe, wird daraus nichts....

Und ja, es wäre verlockend, bei der Userbase :D
 
Zuletzt bearbeitet:
Hallo Zusammen,
erstmal ein gesundes Neues Jahr :-) Wollte man hören ob es schon etwas neues von der "Front" gibt?
 
...das wäre auch für mich spannend zu wissen. Können wir irgendwie unterstützen? Muss ja nicht alles auf einem Paar Schultern liegen...
 
Ich sitze morgen ein paar Stunden im Zug, da werd ich mal beginnen das Script umzuschreiben.
 
Ich habs zum laufen bekommen im aktuellen Firefox.

Habe das Script von hier genommen


Also nur den Inhalt der amazonparser.js !

[src=javascript](function() {

function getClassElement( node, name )
{
if (node == null)
return null;

if( node.className == name ) return node;
for( var i = 0; i < node.childNodes.length; i++ )
{
var element = getClassElement( node.childNodes[ i ], name );
if( element ) return element;
}
return null;
}

function getClassElements( node, name )
{
if (node == null)
return null;

if( node.className == name ) return [ node ];
var elements = [];
for( var i = 0; i < node.childNodes.length; i++ )
{
elements = elements.concat( getClassElements( node.childNodes[ i ], name ) );
}
return elements;
}

function getTagElement( node, name )
{
if( node.nodeName == name ) return node;
for( var i = 0; i < node.childNodes.length; i++ )
{
var child = getTagElement( node.childNodes[ i ], name );
if( child ) return child;
}
return null;
}

function findOrders( doc, year, page )
{
var orderLevels = doc.getElementsByClassName( "order-info" );
var orderBars = doc.getElementsByClassName( "a-box-group a-spacing-base" );

orders[ year ].pages[ page ].done = true;

if( orderLevels.length != orderBars.length )
{
console.log( "Syntax Error " + year + "/" + page );
return;
}

for( var i = 0; i < orderLevels.length; i++ )
{
var order = { "price" : "0,00", "date" : "?", "link" : "", "names" : [], "prices" : [], "products" : 0 , "recip" : ""};

var priceElement = getClassElement( orderLevels[ i ], "a-column a-span2" );
if( priceElement )
{
// sometimes there is no price listed next to the item anymore, so we have to check that and insert 0,00 if it's missing
var price_tag = priceElement.getElementsByClassName('a-color-secondary value');
if (price_tag.length > 0) {
order.price = priceElement.getElementsByClassName('a-color-secondary value')[0].innerHTML.replace(/EUR/,"").replace(/Summe/,"").replace(/.*coins/i,"0,00").trim();
}
else {
order.price = "0,00";
}
}
else
{
console.log( "No price found " + year + "/" + page );
}

var recipElement = getClassElement( orderLevels[ i ], "a-column a-span6 recipient a-span-last" );
if( recipElement )
{
var recip_tag = recipElement.getElementsByClassName('trigger-text');
if (recip_tag.length > 0) {
order.recip = recipElement.getElementsByClassName('trigger-text')[0].innerHTML.trim();
}
else {
order.recip = "?";
}
}
else
{
console.log( "No recipient found " + year + "/" + page );
}

var dateElement = getClassElement( orderLevels[ i ], "a-color-secondary value" );
if( dateElement )
{
order.date = dateElement.innerHTML.trim();
}
else
{
console.log( "No date found " + year + "/" + page );
}

var linkElement = orderLevels[ i ].getElementsByTagName('a')[1];
if( linkElement )
{
order.link = linkElement.href;
}
else
{
console.log( "No link found " + year + "/" + page );
}

var nameElements = getClassElements( orderBars[ i ], "a-fixed-left-grid-col a-col-right" );
if( nameElements.length > 0 )
{
var names = [];
var prices = [];

for( var j = 0; j < nameElements.length; j++ )
{
// sometimes there is no link to the item, then we have to fetch the name of the item from the div tag
var a_tags = nameElements[ j ].getElementsByTagName('A');
if (a_tags.length > 0) {
names.push( nameElements[ j ].getElementsByTagName('A')[0].innerHTML.trim() );
}
else {
names.push( nameElements[ j ].getElementsByTagName('DIV')[0].innerHTML.trim() );
}

var a_price = getClassElement(nameElements[j],'a-size-small a-color-price');
if (a_price) {
prices.push(a_price.textContent.trim());
}
}
order.names = names;
order.prices = prices;
order.products = names.length;
}
else
{
console.log( "No names found " + year + "/" + page );
}

orders[ year ].pages[ page ].entries.push( order );
}
}

function findShipments(doc, year, page) {
var orderElements = doc.getElementsByClassName('a-box-group a-spacing-base');
for (var i = 0; i < orderElements.length; i++) {

var orderNumber = "";
var orderPrice = "";
var orderDate = "";

var orderInfo = orderElements.getElementsByClassName('order-info');
if (orderInfo.length == 1) {

var colRight = orderInfo[0].getElementsByClassName('a-col-right');
if (colRight.length == 1 ) {
var orderNrElements = colRight[0].getElementsByClassName('a-color-secondary value');
if (orderNrElements.length > 0) {
orderNumber = orderNrElements[0].textContent.trim();
}
else {
console.log('No order number found ' + year + '/' + page);
}
}
else {
console.log('No order number found ' + year + '/' + page);
}

var priceElement = getClassElement(orderElements, 'a-column a-span2');
if (priceElement) {
var price_tag = priceElement.getElementsByClassName('a-color-secondary value');
if (price_tag.length > 0) {
orderPrice = priceElement.getElementsByClassName('a-color-secondary value')[0].innerHTML.replace(/EUR/, '').replace(/Summe/, '').replace(/.*coins/i, '0,00').trim();
} else {
orderPrice = '0,00';
}
} else {
console.log('No price found ' + year + '/' + page);
}

var dateElement = getClassElement(orderElements, 'a-color-secondary value');
if (dateElement) {
orderDate = dateElement.innerHTML.trim();
} else {
console.log('No date found ' + year + '/' + page);
}
}

// walking through shipments of the order
var shipmentElements = orderElements.getElementsByClassName('a-box shipment');
for (var s = 0; s < shipmentElements.length; s++) {
var shipment = {
'orderNumber' : orderNumber,
'orderPrice' : orderPrice,
'orderDate' : orderDate,
'date' : '?',
'names': [],
'prices': [],
'price': 0,
'products': 0
};

// finding shipment date:
var topRowElement = getClassElement(shipmentElements, 'a-row shipment-top-row')
var dateElement = getClassElement(topRowElement,'a-size-medium a-color-base a-text-bold');
if (dateElement) {
shipment.date = dateElement.innerHTML.trim();
} else {
console.log('No shipment date found ' + year + '/' + page);
}

// finding Items of the shipment
var nameElements = getClassElements(shipmentElements, 'a-fixed-left-grid-col a-col-right');
if (nameElements.length > 0) {
var names = [];
var prices = [];
var totalCent = 0;
var totalCount = 0;
var priceNotFound = false;

for (var j = 0; j < nameElements.length; j++) {
var a_tags = nameElements[j].getElementsByTagName('A');
if (a_tags.length > 0) {
names.push(nameElements[j].getElementsByTagName('A')[0].innerHTML.trim());
} else {
names.push(nameElements[j].getElementsByTagName('DIV')[0].innerHTML.trim());
}

var qty = getClassElement(nameElements[j].parentElement, 'item-view-qty');
if (qty) {
qty = parseInt ( qty.textContent.trim());
if (isNaN(qty)) {
qty = 1;
}
}
else {
qty = 1;
}

var a_price = getClassElement(nameElements[j],'a-size-small a-color-price');
if (a_price) {
var priceStr = a_price.textContent.trim();
prices.push(priceStr);
var price = priceStr.replace(/EUR/,"").replace(/Summe/,"").replace(/.*coins/i,"0,00").trim().replace(/\./,"").split( "," );
var centPrice = parseInt( price[ 0 ] ) * 100 + parseInt( price[ 1 ] );
if (isNaN(centPrice))
priceNotFound = true;
else
totalCent += centPrice * qty;
}

totalCount += qty;
}
shipment.names = names;
shipment.prices = prices;
shipment.products = totalCount;

if (shipmentElements.length == 1) {
shipment.price = orderPrice;
}
else {
shipment.price = getEuroString(totalCent / 100);
if (priceNotFound)
shipment.price = '*' + shipment.price ;
}
} else {
console.log('No item names in shpiment found ' + year + '/' + page);
}
shipments.push(shipment);
}
}
}

function printState()
{
var s = "";
for( var i = 0; i < orders.length; i++ )
{
s += orders[ i ].year + ":";
if( orders[ i ].pages.length == 0 )
{
s += " waiting...";
}
for( var j = 0; j < orders[ i ].pages.length; j++ )
{
s += " " + ( orders[ i ].pages[ j ].done ? "X" : "." );
}
s += "\n";
}

document.body.innerHTML = "<pre>" + s + "</pre>";
}

function getEuroString( x )
{
var eurocent = ( x.toFixed( 2 ) + "" ).split( "." );
var euro = eurocent[ 0 ];
var euroTsd = "";

for( var i = 0; i < euro.length - 1; i++ )
{
euroTsd += euro.charAt( i );
if( ( ( euro.length - i ) % 3 ) == 1 )
{
euroTsd += ".";
}
}
euroTsd += euro.charAt( euro.length - 1 );

return euroTsd + "," + eurocent[ 1 ];
}

function getOverviewLine( data )
{
return "<tr>" +
"<td align=\"right\">" + data.name + "</td>" +
"<td align=\"right\">" + getEuroString( data.cent / 100 ) + "</td>" +
"<td align=\"right\">" + data.orders + "</td>" +
"<td align=\"right\">" + data.products + "</td>" +
"<td align=\"right\">" + getEuroString( data.cent / 100 / data.products ) + "</td>" +
"<td align=\"right\">" + getEuroString( data.cent / 100 / data.month ) + "</td>" +
"</tr>";
}

function getOrderLine( data )
{
var nameList = "<ul style=\"margin:0; padding:0 0 0 2em\">";
for( var i = 0; i < data.names.length; i++ )
{
nameList += '<li>' + data.names[ i ] + ' | ' + data.prices[ i ] + '</li>';
}
nameList += "</ul>";

return "<tr>" +
"<td align=\"center\" valign=\"top\"><a href=\"" + data.link + "\">Link</a></td>" +
"<td align=\"right\" valign=\"top\">" + data.date + "</td>" +
"<td align=\"center\" valign=\"top\">" + data.products + "</td>" +
"<td align=\"right\" valign=\"top\">" + data.price + "</td>" +
"<td align=\"left\" valign=\"top\">" + data.recip + "</td>" +
"<td align=\"left\" valign=\"top\">" + nameList + "</td>" +
"</tr>";
}

function getShipmentLine( shipment )
{
var nameList = "";
for( var i = 0; i < shipment.names.length; i++ ) {
nameList += shipment.names[ i ] + ' | ' + shipment.prices[ i ] + ' # ';
}

return "<tr>" +
"<td align=\"center\" valign=\"top\">" + shipment.orderNumber + "</td>" +
"<td align=\"right\" valign=\"top\">" + shipment.orderDate + "</td>" +
"<td align=\"center\" valign=\"top\">" + shipment.orderPrice + "</td>" +
"<td align=\"right\" valign=\"top\">" + shipment.date + "</td>" +
"<td align=\"left\" valign=\"top\">" + shipment.products + "</td>" +
"<td align=\"left\" valign=\"top\">" + shipment.price + "</td>" +
"<td align=\"left\" valign=\"top\">" + nameList + "</td>" +
"</tr>";
}


function printOrders()
{
var now = new Date();
var thisYear = "" + ( 1900 + now.getYear() );
var thisYearMonthCount = now.getMonth() + 1;

var allOrders = [];
var years = [];
var overall = { "name" : "Insg.", "cent" : 0, "orders" : 0, "products" : 0, "month" : 0 };

for( var i = 0; i < orders.length; i++ )
{
var yearStr = orders[ i ].year.substr( 5 );
var year = { "name" : yearStr, "cent" : 0, "orders" : 0, "products" : 0, "month" : ( yearStr == thisYear ? thisYearMonthCount : 12 ) };

for( var j = 0; j < orders[ i ].pages.length; j++ )
{
for( var k = 0; k < orders[ i ].pages[ j ].entries.length; k++ )
{
var entry = orders[ i ].pages[ j ].entries[ k ];

var price = entry.price.replace(/\./,"").split( "," );
var cent = parseInt( price[ 0 ] ) * 100 + parseInt( price[ 1 ] );

year.cent += cent;
year.products += entry.products;
year.orders++;

allOrders.push( entry );
}
}

overall.cent += year.cent;
overall.products += year.products;
overall.orders += year.orders;
overall.month += year.month;

years.push( year );
}

var text = "<h2>Uebersicht</h2>";

text += "<table cellspacing=\"0\" cellpadding=\"4\" border=\"1\"><tr>" +
"<th>Jahr</th>" +
"<th>Euro</th>" +
"<th>Bestell.</th>" +
"<th>Produkte</th>" +
"<th>Euro/Prod.</th>" +
"<th>Euro/Monat</th>" +
"</tr>";

text += getOverviewLine( overall );
for( var i = 0; i < years.length; i++ )
{
text += getOverviewLine( years[ i ] );
}
text += "</table>";

text += "<h2>Einzel-Bestellungen</h2>";

text += "<table cellspacing=\"0\" cellpadding=\"4\" border=\"1\"><tr>" +
"<th>Link</th>" +
"<th>Datum</th>" +
"<th>Produkte</th>" +
"<th>Preis</th>" +
"<th>Versandadresse</th>" +
"<th>Produktbeschreibungen</th>" +
"</tr>";

for( var i = 0; i < allOrders.length; i++ )
{
text += getOrderLine( allOrders[ i ] );
}
text += "</table>";

text += "<h2>Lieferungen</h2>";

text += "<table cellspacing=\"0\" cellpadding=\"4\" border=\"1\"><tr>" +
"<th>Bestellnummer</th>" +
"<th>Bestelldatum</th>" +
"<th>Bestellsumme</th>" +
"<th>Lieferdatum</th>" +
"<th>Anzahl Produkte</th>" +
"<th>Summe / Abbuchung</th>" +
"<th>Produkte | Preis</th>" +
"</tr>";

for( var i = 0; i < shipments.length; i++ )
{
text += getShipmentLine( shipments[ i ] );
}
text += "</table>";

document.body.innerHTML = text;
}

function loadOrders( event )
{
if( event.currentTarget.onlyOnce )
{
return;
}
event.currentTarget.onlyOnce = true;

findOrders( event.currentTarget.document, event.currentTarget.yearIndex, event.currentTarget.pageIndex );
findShipments( event.currentTarget.document, event.currentTarget.yearIndex, event.currentTarget.pageIndex );

event.currentTarget.close();
}

function loadYear( event )
{
if( event.currentTarget.onlyOnce )
{
return;
}
event.currentTarget.onlyOnce = true;

var doc = event.currentTarget.document;
var as = doc.getElementsByTagName( "a" );
var maxIndex = 0;
for( var i = 0; i < as.length; i++ )
{
if( as[ i ].href.match( /startIndex=(\d+)/ ) )
{
maxIndex = Math.max( maxIndex, parseInt( RegExp.$1 ) );
}
}

var year = event.currentTarget.yearIndex;

for( var i = 0; i <= maxIndex; i += 10 )
{
orders[ year ].pages.push( { "done" : false, "entries" : [] } );
}

findOrders( doc, year, 0 );
findShipments( doc, year, 0 );

var pageUri = "https://www.amazon.de/gp/css/order-history/gp/css/order-history/ref=oss_pagination?ie=UTF8&orderFilter=" +
orders[ year ].year + "&search=&startIndex=";

var pageIndex = 1;
for( var i = 10; i <= maxIndex; i += 10 )
{
var pageTab = window.open( pageUri + i );
pageTab.yearIndex = year;
pageTab.pageIndex = pageIndex;
pageTab.addEventListener( "load", loadOrders, true );

pageIndex++;
}

event.currentTarget.close();
}

function loadYearCount( event )
{
if( event.currentTarget.onlyOnce )
{
return;
}
event.currentTarget.onlyOnce = true;

var doc = event.currentTarget.document;
var form = doc.getElementsByClassName('time-period-chooser a-spacing-none')[0];
var filter = doc.getElementsByName('orderFilter')[0];

for( var i = 0; i < filter.options.length; i++ )
{
var regex = /year-(\d\d\d\d)/;
if( regex.exec( filter.options[ i ].value ) )
{
orders.push( { "year" : filter.options[ i ].value, "pages" : [] } );
}
}

//orders.splice( 0, orders.length - 2 );

var yearUri = "https://www.amazon.de/gp/css/order-history?";
for( var i = 0; i < form.elements.length; i++ )
{
var element = form.elements[ i ];
if( element == filter )
{
continue;
}

yearUri += encodeURIComponent( element.name ) + "=" + encodeURIComponent( element.value ) + "&";
}
yearUri += "orderFilter=";
//alert( yearUri );

for( var i = 0; i < orders.length; i++ )
{
var yearTab = window.open( yearUri + orders[ i ].year );
yearTab.yearIndex = i;
yearTab.addEventListener( "load", loadYear, true );
}

waitInterval = setInterval( waitForFinish, 1000 );

event.currentTarget.close();
}

function waitForFinish()
{
printState();

for( var i = 0; i < orders.length; i++ )
{
if( orders[ i ].pages.length == 0 )
{
return;
}
for( var j = 0; j < orders[ i ].pages.length; j++ )
{
if( !orders[ i ].pages[ j ].done )
{
return;
}
}
}

clearInterval( waitInterval );
printOrders();
}

var orders = [];
var shipments = [];
var waitInterval;

var mainTab = window.open("https://www.amazon.de/gp/css/order-history/ref=ya_orders_css");
mainTab.addEventListener( "load", loadYearCount, true );

})();[/src]

Pop-Ups erlauben/zulassen für Amazon und den Wert dom.popup_maximum in der about:config höher setzen z.B. auf 100.

Wichtig war noch:
Statt Punkt 7. Unter "Umgebung" sollte jetzt "Browser" anwählbar sein (dafür war die about:config-Einstellung zuständig), anwählen.
Im Inhalt lassen.
Danach wie gewohnt das Script ausführen.


Oder einfach direkt in der Entwicklerkonsole ausführen STRG+SHIFT+C (Konsole und Code unten rein kopieren bei den >>


Funktioniert auch in Google Chrome mit der Entwicklerkonstole wenn ihr vorher Pop-Ups erlaubt für
[src=text]
Unter chrome://settings/content/popups?search=pop-ups

[*.]amazon.de

eintragen
[/src]


Einfachste Möglichkeit:
Als Bookmark sieht das ganze dann so aus:
Einfach als Bookmark/Lesezeichen abspeichern dann brauch man es nicht jedesmal in die Konsole posten und brauch nur auf den Link zu klicken:

[src=text]javascript:void(function(){!function(){function e(t,r){if(null==t)return null;if(t.className==r)return t;for(var n=0;n<t.childNodes.length;n++){var a=e(t.childNodes[n],r);if(a)return a}return null}function t(e,r){if(null==e)return null;if(e.className==r)return[e];for(var n=[],a=0;a<e.childNodes.length;a++)n=n.concat(t(e.childNodes[a],r));return n}function r(r,n,a){var o=r.getElementsByClassName("order-info"),l=r.getElementsByClassName("a-box-group a-spacing-base");if(m[n].pages[a].done=!0,o.length!=l.length)return void console.log("Syntax Error "+n+"/"+a);for(var s=0;s<o.length;s++){var i={price:"0,00",date:"?",link:"",names:[],prices:[],products:0,recip:""},g=e(o,"a-column a-span2");if(g){var c=g.getElementsByClassName("a-color-secondary value");c.length>0?i.price=g.getElementsByClassName("a-color-secondary value")[0].innerHTML.replace(/EUR/,"").replace(/Summe/,"").replace(/.*coins/i,"0,00").trim():i.price="0,00"}else console.log("No price found "+n+"/"+a);var d=e(o,"a-column a-span6 recipient a-span-last");if(d){var h=d.getElementsByClassName("trigger-text");h.length>0?i.recip=d.getElementsByClassName("trigger-text")[0].innerHTML.trim():i.recip="?"}else console.log("No recipient found "+n+"/"+a);var p=e(o,"a-color-secondary value");p?i.date=p.innerHTML.trim():console.log("No date found "+n+"/"+a);var u=o.getElementsByTagName("a")[1];u?i.link=u.href:console.log("No link found "+n+"/"+a);var f=t(l,"a-fixed-left-grid-col a-col-right");if(f.length>0){for(var v=[],y=[],N=0;N<f.length;N++){var T=f[N].getElementsByTagName("A");T.length>0?v.push(f[N].getElementsByTagName("A")[0].innerHTML.trim()):v.push(f[N].getElementsByTagName("DIV")[0].innerHTML.trim());var E=e(f[N],"a-size-small a-color-price");E&&y.push(E.textContent.trim())}i.names=v,i.prices=y,i.products=v.length}else console.log("No names found "+n+"/"+a);m[n].pages[a].entries.push(i)}}function n(r,n,a){for(var l=r.getElementsByClassName("a-box-group a-spacing-base"),s=0;s<l.length;s++){var i="",g="",c="",d=l.getElementsByClassName("order-info");if(1==d.length){var h=d[0].getElementsByClassName("a-col-right");if(1==h.length){var p=h[0].getElementsByClassName("a-color-secondary value");p.length>0?i=p[0].textContent.trim():console.log("No order number found "+n+"/"+a)}else console.log("No order number found "+n+"/"+a);var u=e(l,"a-column a-span2");if(u){var m=u.getElementsByClassName("a-color-secondary value");g=m.length>0?u.getElementsByClassName("a-color-secondary value")[0].innerHTML.replace(/EUR/,"").replace(/Summe/,"").replace(/.*coins/i,"0,00").trim():"0,00"}else console.log("No price found "+n+"/"+a);var v=e(l,"a-color-secondary value");v?c=v.innerHTML.trim():console.log("No date found "+n+"/"+a)}for(var y=l.getElementsByClassName("a-box shipment"),N=0;N<y.length;N++){var T={orderNumber:i,orderPrice:g,orderDate:c,date:"?",names:[],prices:[],price:0,products:0},E=e(y[N],"a-row shipment-top-row"),v=e(E,"a-size-medium a-color-base a-text-bold");v?T.date=v.innerHTML.trim():console.log("No shipment date found "+n+"/"+a);var b=t(y[N],"a-fixed-left-grid-col a-col-right");if(b.length>0){for(var B=[],x=[],I=0,w=0,C=!1,L=0;L<b.length;L++){var M=b[L].getElementsByTagName("A");M.length>0?B.push(b[L].getElementsByTagName("A")[0].innerHTML.trim()):B.push(b[L].getElementsByTagName("DIV")[0].innerHTML.trim());var H=e(b[L].parentElement,"item-view-qty");H?(H=parseInt(H.textContent.trim()),isNaN(H)&&(H=1)):H=1;var k=e(b[L],"a-size-small a-color-price");if(k){var P=k.textContent.trim();x.push(P);var z=P.replace(/EUR/,"").replace(/Summe/,"").replace(/.*coins/i,"0,00").trim().replace(/\./,"").split(","),A=100*parseInt(z[0])+parseInt(z[1]);isNaN(A)?C=!0:I+=A*H}w+=H}T.names=B,T.prices=x,T.products=w,1==y.length?T.price=g:(T.price=o(I/100),C&&(T.price="*"+T.price))}else console.log("No item names in shpiment found "+n+"/"+a);f.push(T)}}}function a(){for(var e="",t=0;t<m.length;t++){e+=m[t].year+":",0==m[t].pages.length&&(e+=" waiting...");for(var r=0;r<m[t].pages.length;r++)e+=" "+(m[t].pages[r].done?"X":".");e+="\n"}document.body.innerHTML="<pre>"+e+"</pre>"}function o(e){for(var t=(e.toFixed(2)+"").split("."),r=t[0],n="",a=0;a<r.length-1;a++)n+=r.charAt(a),(r.length-a)%3==1&&(n+=".");return n+=r.charAt(r.length-1),n+","+t[1]}function l(e){return'<tr><td align="right">'+e.name+'</td><td align="right">'+o(e.cent/100)+'</td><td align="right">'+e.orders+'</td><td align="right">'+e.products+'</td><td align="right">'+o(e.cent/100/e.products)+'</td><td align="right">'+o(e.cent/100/e.month)+"</td></tr>"}function s(e){for(var t='<ul style="margin:0; padding:0 0 0 2em">',r=0;r<e.names.length;r++)t+="<li>"+e.names[r]+" | "+e.prices[r]+"</li>";return t+="</ul>",'<tr><td align="center" valign="top"><a href="'+e.link+'">Link</a></td><td align="right" valign="top">'+e.date+'</td><td align="center" valign="top">'+e.products+'</td><td align="right" valign="top">'+e.price+'</td><td align="left" valign="top">'+e.recip+'</td><td align="left" valign="top">'+t+"</td></tr>"}function i(e){for(var t="",r=0;r<e.names.length;r++)t+=e.names[r]+" | "+e.prices[r]+" # ";return'<tr><td align="center" valign="top">'+e.orderNumber+'</td><td align="right" valign="top">'+e.orderDate+'</td><td align="center" valign="top">'+e.orderPrice+'</td><td align="right" valign="top">'+e.date+'</td><td align="left" valign="top">'+e.products+'</td><td align="left" valign="top">'+e.price+'</td><td align="left" valign="top">'+t+"</td></tr>"}function g(){for(var e=new Date,t=""+(1900+e.getYear()),r=e.getMonth()+1,n=[],a=[],o={name:"Insg.",cent:0,orders:0,products:0,month:0},g=0;g<m.length;g++){for(var c=m[g].year.substr(5),d={name:c,cent:0,orders:0,products:0,month:c==t?r:12},h=0;h<m[g].pages.length;h++)for(var p=0;p<m[g].pages[h].entries.length;p++){var u=m[g].pages[h].entries[p],v=u.price.replace(/\./,"").split(","),y=100*parseInt(v[0])+parseInt(v[1]);d.cent+=y,d.products+=u.products,d.orders++,n.push(u)}o.cent+=d.cent,o.products+=d.products,o.orders+=d.orders,o.month+=d.month,a.push(d)}var N="<h2>Uebersicht</h2>";N+='<table cellspacing="0" cellpadding="4" border="1"><tr><th>Jahr</th><th>Euro</th><th>Bestell.</th><th>Produkte</th><th>Euro/Prod.</th><th>Euro/Monat</th></tr>',N+=l(o);for(var g=0;g<a.length;g++)N+=l(a[g]);N+="</table>",N+="<h2>Einzel-Bestellungen</h2>",N+='<table cellspacing="0" cellpadding="4" border="1"><tr><th>Link</th><th>Datum</th><th>Produkte</th><th>Preis</th><th>Versandadresse</th><th>Produktbeschreibungen</th></tr>';for(var g=0;g<n.length;g++)N+=s(n[g]);N+="</table>",N+="<h2>Lieferungen</h2>",N+='<table cellspacing="0" cellpadding="4" border="1"><tr><th>Bestellnummer</th><th>Bestelldatum</th><th>Bestellsumme</th><th>Lieferdatum</th><th>Anzahl Produkte</th><th>Summe / Abbuchung</th><th>Produkte | Preis</th></tr>';for(var g=0;g<f.length;g++)N+=i(f[g]);N+="</table>",document.body.innerHTML=N}function c(e){e.currentTarget.onlyOnce||(e.currentTarget.onlyOnce=!0,r(e.currentTarget.document,e.currentTarget.yearIndex,e.currentTarget.pageIndex),n(e.currentTarget.document,e.currentTarget.yearIndex,e.currentTarget.pageIndex),e.currentTarget.close())}function d(e){if(!e.currentTarget.onlyOnce){e.currentTarget.onlyOnce=!0;for(var t=e.currentTarget.document,a=t.getElementsByTagName("a"),o=0,l=0;l<a.length;l++)a[l].href.match(/startIndex=(\d+)/)&&(o=Math.max(o,parseInt(RegExp.$1)));for(var s=e.currentTarget.yearIndex,l=0;o>=l;l+=10)m.pages.push({done:!1,entries:[]});r(t,s,0),n(t,s,0);for(var i="https://www.amazon.de/gp/css/order-history/gp/css/order-history/ref=oss_pagination?ie=UTF8&orderFilter="+m.year+"&search=&startIndex=",g=1,l=10;o>=l;l+=10){var d=window.open(i+l);d.yearIndex=s,d.pageIndex=g,d.addEventListener("load",c,!0),g++}e.currentTarget.close()}}function h(e){if(!e.currentTarget.onlyOnce){e.currentTarget.onlyOnce=!0;for(var t=e.currentTarget.document,r=t.getElementsByClassName("time-period-chooser a-spacing-none")[0],n=t.getElementsByName("orderFilter")[0],a=0;a<n.options.length;a++){var o=/year-(\d\d\d\d)/;o.exec(n.options[a].value)&&m.push({year:n.options[a].value,pages:[]})}for(var l="https://www.amazon.de/gp/css/order-history?",a=0;a<r.elements.length;a++){var s=r.elements[a];s!=n&&(l+=encodeURIComponent(s.name)+"="+encodeURIComponent(s.value)+"&")}l+="orderFilter=";for(var a=0;a<m.length;a++){var i=window.open(l+m[a].year);i.yearIndex=a,i.addEventListener("load",d,!0)}u=setInterval(p,1e3),e.currentTarget.close()}}function p(){a();for(var e=0;e<m.length;e++){if(0==m[e].pages.length)return;for(var t=0;t<m[e].pages.length;t++)if(!m[e].pages[t].done)return}clearInterval(u),g()}var u,m=[],f=[],v=window.open("https://www.amazon.de/gp/css/order-history/ref=ya_orders_css");v.addEventListener("load",h,!0)}();})();[/src]

Gruß DNA

P.S.: 13.346,77€ :(
 
Zuletzt bearbeitet:
@DNA:

hey,
hat echt super mit Chrome geklappt auch ohne Vorkenntnisse.

Hab eindeutig zu viel Geld dort liegen lassen.
 
Also ich bekomme es nicht hin :(

Im firefox lade ich im JS-Fenster die amazonparser.js und stelle bei "Umgebung" nicht auf Browser sondern lasse sie auf Inhalt. Danach ausführen, und es passiert nix.
Auch wenn ich auf Browser stelle passiert nix.

Was muss ich bei Chrome machen um es zu laden und zu starten?
 
Zurück
Oben