Ich habs zum laufen bekommen im aktuellen Firefox.
Habe das Script von hier genommen
https://github.com/GameScripting/amazon-parser
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=gT.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€