• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Amazon Bestellungen Exportieren (the hard way)

abflussrohr

Hat keine Zeit :(

Registriert
4 Aug. 2013
Beiträge
104
Ort
Frankfurt
Aus irgendeinem Grund bietet Amazon nicht an, alle getätigten Bestellungen zu exportieren (bei amazon.com geht das glaube). Daher kam ich nicht umhin ein Script zu schreiben was dies tut. Dank der Hilfe von accC war das am Ende auch grad noch so zu schaffen (trotzdem ist JS und DOM ist ein Riesenhaufenschokoscheiße...).

Das Script läuft in Firefox und hangelt sich durch die ganze Bestellhistorie von Amazon um alle Einträge zusammenzusuchen.

Benötigt wird noch Firefox, ein Amazon-Account und ein paar kleine Hacks

  1. Script "amazonorders.zip" runterladen, irgendwohin entpacken (Desktop...)
  2. Firefox starten
  3. "about:config" aufrufen und "devtools.chrome.enabled" auf "true" setzen
  4. Auf amazon.de gehen und sich einloggen (und sicherheitshalber "Angemeldet bleiben" anstellen)
  5. Firefox->Web-Entwickler->JavaScript-Umgebung aufrufen (oder Shift-F4 drücken)
  6. In dem JS-Fenster die "amazonorders.js" öffnen
  7. Unter "Umgebung" sollte jetzt "Browser" anwählbar sein (dafür war die about:config-Einstellung zuständig), anwählen
  8. Das Script unter Ausführen->Ausführen (oder mit Strg+R) starten

Nun sollte folgendes passieren: Ein neuer Tab mit der Bestell-Historie-Seite geht auf, kurz darauf werden alle Jahre angezeigt, in welchen Bestellungen gefunden wurden. Die gewünschten Jahre auswählen und den "Bestellungen laden" anklicken. Nun öffnen sich weitere Tabs (einer für jedes Jahr und jede Seite dort), diese werden jedoch geschlossen sobald sie geparsed wurden. In dem ersten Tab wird während des Parsens eine kleine Statistik angezeigt. Sind alle Seiten abgearbeitet worden (alle Tabs sollten wieder geschlossen sein), wird im ersten Tab eine Liste aller Bestellungen angezeigt (und der grauenvolle Gesamtbetrag). Ein CSV-Export befindet sich in der Beta-Phase.

Das ist alles ziemlich umständlich, läuft aber recht gut. Vielleicht hat ja mal jemand Lust das in eine FF-Extension zu gießen. Den Code habe ich eben hingehackt, daher ist er nicht besonders schön oder schlank (meine JS-Kenntnisse sind doch sehr rudimentär). Falls da jemand Ideen hat wie man es vereinfachen könnte wäre ich sehr interessiert.

Auch für Bugs, Features und Feedback bin ich immer zu haben.

Version vom 09.10.2016:
 

Anhänge

  • amazonorders09102016.zip
    4,5 KB · Aufrufe: 8.770
Zuletzt bearbeitet:

Fhynn

Wird jetzt vernünftig.

Registriert
13 Juli 2013
Beiträge
12.825
Ich weine gleich bei der Gesamtsumme ... Oo
Eindeutig zuviele Bücher und zuviel unwichtiger Kleinkram!!

Also:
Funktioniert, ist aber natürlich umständlich.
 

Kugelfisch

Nerd

Registriert
12 Juli 2013
Beiträge
2.342
Ort
Im Ozean
Willkommen im ngb, abflussrohr ;)

Zu deinem Projekt:
Mir scheint die Lösung, zum Auslesen der Seiten und Generieren der Zusammenfassungen einen vollwertigen Browser zu missbrauchen, unschön. Sicherlich ist es für den Benutzer komfortabel, wenn er eine im Browser bereit aktive Session weiternutzen kann und sich nicht erneut einloggen muss, allerdings ist die Ausführung des Skripts in Firefox relativ umständlich und zumindest das benutzte Browser-Fenster während der Erzeugung des Berichts nicht mehr anderweitig benutzbar. Hast du das aus einem bestimmten Grund in Firefox als Chrome-JS implementiert?
Spricht etwas dagegen, z.B. http://phantomjs.org/ stattdessen zu nutzen - oder eine beliebige andere Programmiersprache mit HTML-Parser? Zumindest für PhantomJS dürfte dein Code leicht anpassbar sein und könnte dann ohne grafischen Browser laufen. Ein eigener HTML-Parser komplett ohne Layout-Engine wäre natürlich noch einmal effizienter, allerdings auch aufwändiger und wohl mit einer kompletten Neuimplementierung verbunden.
 

abflussrohr

Hat keine Zeit :(

Registriert
4 Aug. 2013
Beiträge
104
Ort
Frankfurt
  • Thread Starter Thread Starter
  • #4
Ja, ich wollte es liebend gern mit irgendeinem browser-fernen Script bewerkstelligen, jedoch hatte ich keine Lust mich mit dem Amazon-Login rumzuschlagen (hab nicht rausgefunden ob sich das leicht per http-requests bewerkstelligen lässt). Da war die Browserumgebung doch erstmal einfacherer. So weit ich das gesehen habe führt Amazon auch kein wichtiges JavaScript aus, so dass zB. auch ein Rubyscript die Informationen sammeln könnte (wenn das Login machbar ist).

Ursprünglich dachte ich, man könnte die Infos auch direkt über die AWS-Api bekommen, aber das ist ja inzwischen ein episches Molloch geworden. :confused:

Da ich ja immer so wenig Zeit habe, war das der schnellste Weg ;)

...und zumindest das benutzte Browser-Fenster während der Erzeugung des Berichts nicht mehr anderweitig benutzbar.
Also bei mir dauert das wenige Sekunden und ist jedes mal so spannend und deprimierend dass ich eh nichts anderes tun kann :p
 

Kugelfisch

Nerd

Registriert
12 Juli 2013
Beiträge
2.342
Ort
Im Ozean
Das ist nachvollziehbar, allerdings ist der Login nicht so komplex, wie er zunächst möglicherweise scheint, insbesondere dann nicht, wenn man eine Bibliothek wie Perls WWW-Mechanize, Rubys Mechanize, oder auch PhantomJS (speziell in Verbindung mit CasperJS) benutzt. Ohne solch eine Bibliothek wäre er natürlich auch möglich, allerdings müsste man dann zumindest die versteckten Formularfelder extrahieren und übermitteln, ggf. auch die Cookie-Verwaltung, Weiterleitungen und korrekte Referer-Header selbst implementieren.

Beispiel für Perl/WWW-Mechanize bei Interesse:
[src=perl]
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(
agent => 'Mozilla/5.0'
);

$mech->get('http://amazon.de');

$mech->follow_link( id => 'nav-your-account' );

$mech->submit_form(
form_name => 'signIn',
fields => { email => 'foo@example.com', password => '...', create => '0' }
);

$mech->get('https://www.amazon.de/gp/css/order-history/ref=ya_orders_css');

print $mech->content();[/src]
 
Zuletzt bearbeitet:

abflussrohr

Hat keine Zeit :(

Registriert
4 Aug. 2013
Beiträge
104
Ort
Frankfurt
  • Thread Starter Thread Starter
  • #6
Danke, probiere ich sicher mal aus wenn Zeit ist, bis dahin ist mir die FF-Version komfortabel genug :)
 

Alcaeus

HEYYEYAAEYAAAEYAEYAA

Registriert
5 Aug. 2013
Beiträge
2
Danke für das Script, echt gut gemacht!

Aber bei der Summe wird’s mir schwindlig, blödes 1-Click :D
 

Brother John

(schein)heilig

Registriert
1 Aug. 2013
Beiträge
235
Feines Skript, danke.
Funktioniert übrigens auch recht gut auf amazon.co.uk, wenn man im Skript alle "amazon.de" austauscht. Nur die Preisübersicht klappt nicht, das dürfte am anderen Währungsformat liegen.
 

abflussrohr

Hat keine Zeit :(

Registriert
4 Aug. 2013
Beiträge
104
Ort
Frankfurt
  • Thread Starter Thread Starter
  • #9
Ich hab das Script mal für amazon.co.uk gefixt und die Url in die erste Zeile geschrieben, so dass sie sich einfach ändern lässt. amazon.com sollte auch funktionieren, jedoch habe ich dort noch nie was bestellt und konnte es deshalb nicht testen.
 

gben

Neu angemeldet

Registriert
28 Dez. 2013
Beiträge
3
Super Sache, genau das was ich gesucht habe (hätte mir das allerdings auch direkt von amazon gewünscht). Vielen Dank!!

Natürlich habe ich aber auch eine Frage/Idee/Bitte...: wäre es möglich die Preise der einzelnen Artikel einer Bestellung und die Rücksendungen mit zu berücksichtigen? Das Thema "Retourenquote" wird ja in letzter Zeit wieder ziemlich diskutiert, da wäre das interessant (und auch einfach um zu sehen/wissen, was ich am Ende wirklich "gekauft", also behalten habe)...

Danke und viele Grüße
gben
 

abflussrohr

Hat keine Zeit :(

Registriert
4 Aug. 2013
Beiträge
104
Ort
Frankfurt
  • Thread Starter Thread Starter
  • #11
Das kann ich mal probieren. Ich habe diesen Monat zum ersten mal was zurückgeschickt (ohne Ersatz zu fordern), daher war das zuvor für mich nicht testbar. Aus der Bestellübersicht geht das allerdings nicht hervor, muss ich wohl noch etwas mehr Infos abrufen.
 

Hober Mallow

Neu angemeldet

Registriert
14 Dez. 2013
Beiträge
52
Sehr geile Sache! :T

Das Ergebnis ist allerdings erschütternd. Ich frage mich, wo ich das ganze Geld her hatte. :eek:
 

gben

Neu angemeldet

Registriert
28 Dez. 2013
Beiträge
3
Biete mich gern auch fürs Ausprobieren an; ich hab da eine ziemlich lange und erfüllte Bestell- und Rücksendehistorie bei Amazon;)
 

spe

Neu angemeldet

Registriert
7 März 2014
Beiträge
2
Super Script!

Nur könnte man es so anpassen das es auch den Umsatz von Bestellungen die über Geschenkgutscheine bezahlt wurden richtig erfasst?
Bei der Summe steht da zwar immer EUR 0,00 aber wenn man dann auf Bestelldetails geht sieht man den richtigen Betrag.
 
Zuletzt bearbeitet:

abflussrohr

Hat keine Zeit :(

Registriert
4 Aug. 2013
Beiträge
104
Ort
Frankfurt
  • Thread Starter Thread Starter
  • #16
Ich bin schon dran eine ausführlichere Auswertung zu basteln, ich denke im April habe ich wieder ein wenig Zeit das fertig zu stellen. :coffee:
 

inseljumper

Neu angemeldet

Registriert
4 Juni 2014
Beiträge
2
Gibt es hier schon was Neues?
Habe mir das Skript mal angeschaut und konnte es auch schon erweitern. Wenn mir jemand die Routine schreibt, um eine Ebene tiefer, also auf die Detailseiten zu kommen, kann ich auch gerne etwas Zeit investieren und die Auswertung ausweiten. Programmieren kann ich, nur habe ich speziell im Bereich JavaScript und Browsern keine grossen Erfahrungen. Vielleicht kann man hier die Arbeit auf mehrere Personen erweitern. MB
 

abflussrohr

Hat keine Zeit :(

Registriert
4 Aug. 2013
Beiträge
104
Ort
Frankfurt
  • Thread Starter Thread Starter
  • #18
Nein, gibt noch nix neues :)

Ich habe mir die Unterseiten mal angeschaut. Das größte Problem ist, dass die Daten dort nicht einheitlich sind und es viele Ausnahmen gibt. Ich konnte jedenfalls keine wirkliche Regelmäßigkeit sehen, aus der man eine Retoure, Erstattung, Gutschein, Ersatzlieferung, etc. hätte rauslesen können. Bei Bestellungen mit mehreren Artikeln von denen nur einige zurückgeschickt wurden, ist es nochmal komplizierter.

In meinem Fall käme noch die Anzahl der Bestellungen (>500) hinzu (ich weiß nicht, ob da bei Amazon nicht ein Filter anspringt wenn man so viele Seiten aufruft).

Ich habe aber mal mit dem Lokal Storage von FF rumgespielt, so könnte man die Daten erstmal lokal speichern und dann auch Rücksendungen manuell eintragen (sollten ja nicht so viele sein ;)).
 

inseljumper

Neu angemeldet

Registriert
4 Juni 2014
Beiträge
2
Ich denke auch das es sinnvoll ist die Seiten erstmal offline zu sichern. Weist du wie man das schnell über das JS Skript erledigen könnte? Ich habe mir alles mit einem Automatorskript besorgt. Bei extrahieren von der Platte kann man sich ja Zeit lassen ;)
 

Gelöschtes Mitglied 1550

Guest

G
So ein ähnliches Skript gibt es hier. Er hat auch den Login gelöst - die Auflistung der einzelnen Bestellungen ist nicht möglich.
 
Oben