Ich habe versucht, ein Tool zum Vergleichen von Amazon-Produktpreisen auf der ganzen Welt mit Java, der Amazon Product Advertising API und der Currency API (29.01.2017) zu erstellen.

hello world!

Vorstellen

Schön dich kennenzulernen, mein Name ist Alpacatom. Ich bin ein Doktorand von M1. Schließlich habe ich etwas Zeit, die über den Höhepunkt der Zeitung hinausgeht, und werde sie zum ersten Mal auf Kosten kostbarer Samstage und Sonntage veröffentlichen. Bitte achten Sie als Neuling herzlich darauf. Wir würden uns freuen, wenn Sie uns Verbesserungsvorschläge und Meinungen geben könnten. Dieses Mal habe ich ein Tool erstellt, mit dem die Preise von Produkten bei Amazon in 6 Ländern mithilfe der Amazon Product Advertising API und der Currency API verglichen werden können. Natürlich ist der Versand inbegriffen.

Hinweis: Seien Sie darauf vorbereitet, da es ziemlich mühsam sein kann, sich für den Gebrauch vorzubereiten.

Motivation (Eispause)

"Ich möchte eine Blu-ray-Disc von jedermanns Lieblings-Urknalltheorie" → "Aber (Doktoranden) haben kein Geld" → "Das !? Amazon in den USA ist billiger als Japan?" ← Jetzt hier Ich habe das Ergebnis nicht wirklich verstanden und wusste, dass die Preise bei Amazon von Land zu Land unterschiedlich sind, also habe ich es geschafft.

Tipps: __ Urknalltheorie Was ist __? Super interessantes Comedy-Drama aus Übersee. Diese Arbeit kann sowohl für diejenigen empfohlen werden, die Forscher sein wollen, als auch für diejenigen, die es nicht sind, insbesondere für Doktoranden, es ist ein Muss __. Übrigens habe ich zwei Wochen bis zur Staffel 1-6 verbracht. (Netflix ist das Beste!)

Später denke ich darüber nach, eine SuperSrydry-Tasche zu kaufen ... und so weiter.

Referenz: Superdry

Currency API Beginnt das Hauptthema. Es ist eine API zum Abrufen von Informationen zu Wechselkursen, die Sie durch Registrierung verwenden können. Diesmal benutze ich die kostenlose. https://currencylayer.com/ Holen Sie sich jetzt den API-Schlüssel für die Währungsebene.

Amazon Product Advertising API Ich habe auf den folgenden Artikel verwiesen.

Amazon Associate Tag

Dies ist ein entscheidender Moment. Registrieren Sie das Land, das Sie vergleichen möchten, und erhalten Sie das Associate-Tag. (Dieses Mal basiert es auf Japan, daher ist Japan unerlässlich.) Laut einem bestimmten Artikel von StackOverflow wurde veröffentlicht, dass es nur verwendet werden kann, wenn es in jedem Land registriert ist. Registrieren Sie sich daher in dem erforderlichen Land "all".

AWS-Zugriffsschlüssel und geheimer Schlüssel

Wie benutzt man

Wenn Sie Eclipse verwenden, importieren Sie das aus Github gezogene Projekt (https://github.com/alpacatom/ComparingPrices-via-AmazonAPI) und verwenden Sie den oben erhaltenen Schlüssel (Currency.java), da es in Eclipse entwickelt wurde. Und SearchAnItem.java) Sie können es verwenden, indem Sie es einstellen. Die Suche hat einige erforderliche Parameter. --ASIN-Nummer (Referenz https://www.amazon.com/gp/help/customer/display.html?nodeId=200202190#find_asins)

Hauptklasse

Im Folgenden ist nur die Hauptfunktion aufgeführt. Der Ablauf besteht darin, die Versandtabelle aus der CSV-Datei abzurufen und auf die Währungs-API und die Amazon-API zu klicken, um den Wechselkurs und den Preis der Produktinformationen abzurufen. Weitere Informationen finden Sie unter Github (https://github.com/alpacatom/ComparingPrices-via-AmazonAPI).

AmazonAPI.java


	public static void main(String[] args) {
		// Initializing
		ItemData arr[] = new ItemData[ItemData.COUNTRY_NUM];
		for(int i=0;i<ItemData.COUNTRY_NUM;i++){
			arr[i] = new ItemData();
		}
		String line[] = new String[ShipmentCharge.CSV_MAX_LINE_SIZE];
		ShipmentCharge SC[][] = new ShipmentCharge[ItemData.COUNTRY_NUM][ShipmentCharge.CSV_MAX_LINE_SIZE];
		// Get Shipment Charges
		for(int j=0;j<ItemData.COUNTRY_NUM;j++){
			line = ItemData.ReadFile(ShipmentCharge.ShipmentTXT[j]);
			String stmp[] = new String[ShipmentCharge.CSV_MAX_COLUM_SIZE];
			int k=0;
			while(line[k]!=null){
				stmp = MyParser.parseCSV(line[k]);
				SC[j][k] = ShipmentCharge.MakeTable(SC[j][k], stmp, j);
				k++;
			}
		}
		// Calculate the lowest Shipment Charges each countires.
		Double[] dtmp = new Double[6];
		dtmp = ShipmentCharge.LowestCalcSC(SC,ItemData.category);
		// Get Currencies via currencylayer
        String json = Currency.GetCurrencies();
        Double CurrenciesRate[] = new Double[ItemData.COUNTRY_NUM];
        CurrenciesRate = MyParser.getCurrencies(json);
		// Get Price and Country via Amazon Product API
		String xml[] = new String[ItemData.COUNTRY_NUM];
		final String tag[] = {"CurrencyCode","FormattedPrice"};

		for(int i=0;i<ItemData.COUNTRY_NUM;i++){
			arr[i].setCountry(ItemData.Countries[i]);
			xml[i] = SearchAnItem.SearchByID(ItemData.getItemID(), i);
			arr[i].setShitpment(dtmp[i]);
			arr[i].setCurrenciesCode(MyParser.getTagElmFromXML(xml[i],tag[0]));
			arr[i].setPrice( MyParser.Convert2Double(MyParser.getTagElmFromXML(xml[i],tag[1])));
        	arr[i].setCurrenciesRate(CurrenciesRate[i]);
        	arr[i].PrintAll();
		}
	}

Ausführungsergebnis

Das Ergebnis der Berechnung wird in USD angezeigt. Je niedriger TOTAL: ist, desto "billiger" ist es. Unten finden Sie den BD-Preis (einschließlich Versand) für Big Bang ★ Theory Season 1-9. Wie Sie sehen können, erhalten Sie 115 * (Max-Min) = 2990 Yen, wenn Sie kein Japanisch (mit englischen Untertiteln) benötigen. ad1b905491ba78d3da57cbb32752f150.png

Impressionen

Vielen Dank, dass Sie so weit gelesen haben, und ich werde es veröffentlichen, wenn ich wieder etwas mache.

Was ich bekam

Was ich verloren habe

Was ich zurückgelassen habe

Verweise

Amazon Product API document http://docs.aws.amazon.com/AWSECommerceService/latest/DG/Welcome.html Currencylayer API document https://currencylayer.com/documentation Dateieingabe / -ausgabe https://www.caveofprogramming.com/java/java-file-reading-and-writing-files-in-java.html Reguläre Ausdrücke https://docs.oracle.com/javase/jp/6/api/java/util/regex/Pattern.html http://qiita.com/ymsr5612/items/7c8811b5cf37d700adc4 Base64-Codierung / -Decodierung (ich war süchtig danach, das Glas hier nicht in Eclipse importieren zu können) http://criticalbreak5.seesaa.net/article/420080828.html XML via DOM (wird doch nicht verwendet) http://www.fireproject.jp/feature/xml/programing/java-dom.html JSON http://www.task-notes.com/entry/20150919/1442639772

Recommended Posts

Ich habe versucht, ein Tool zum Vergleichen von Amazon-Produktpreisen auf der ganzen Welt mit Java, der Amazon Product Advertising API und der Currency API (29.01.2017) zu erstellen.
Ich habe einen RESAS-API-Client in Java erstellt
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich habe versucht, eine Web-API zu erstellen, die mit Quarkus eine Verbindung zur Datenbank herstellt
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Eine Geschichte, die ich mit der Stream-API von Java8 einem Prozess schreiben wollte, der einer while-Anweisung entspricht
Ich habe versucht, den Block mit Java zu brechen (1)
Ich habe ein Programm erstellt, das aus dem mit Java überladenen Prozess nach der Zielklasse sucht
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
[Java] Ich habe versucht, die Yahoo API-Produktsuche zu implementieren
Ich habe versucht, den Betrieb der http-Anfrage (Put) mit dem Talented API Tester zu überprüfen
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ich habe versucht, die Beispielanwendung gemäß der Idee des Buches "Micro Service Architecture" in einen Mikrodienst zu verwandeln.
[Java] Ich habe versucht, ein Janken-Spiel zu erstellen, das Anfänger auf der Konsole ausführen können
[VBA] Ich habe ein Tool erstellt, um den primitiven Typ der von Hibernate Tools generierten Entity-Klasse in den entsprechenden Referenztyp zu konvertieren.
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
[Rails] Implementierung einer mehrschichtigen Kategoriefunktion unter Verwendung der Abstammung "Ich habe versucht, ein Fenster mit Bootstrap 3 zu erstellen"
Ich habe versucht, die Ergebnisse vor und nach der Date-Klasse mit einer geraden Zahl auszudrücken
Ich habe versucht, mit Docker eine Plant UML Server-Umgebung zu erstellen
Ich habe versucht, mit Java zu interagieren
Ich habe eine App für maschinelles Lernen mit Dash (+ Docker) Teil 2 ~ Grundlegende Schreibweise für Dash ~ erstellt
Eine Geschichte über das Erreichen der League Of Legends-API mit JAVA
Ich habe versucht, eine Android-Anwendung mit MVC zu erstellen (Java)
Ich habe versucht, den Betrieb des gRPC-Servers mit grpcurl zu überprüfen
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
Ich habe ein Tool erstellt, um den Unterschied zwischen CSV-Dateien auszugeben
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
Ich habe versucht, ein Beispielprogramm mit dem Problem des Datenbankspezialisten für domänengesteuertes Design zu erstellen
Ich habe versucht, ein übergeordnetes Wertklasseobjekt in Ruby zu erstellen
[iOS] Ich habe versucht, mit Swift eine insta-ähnliche Verarbeitungsanwendung zu erstellen
Ich habe einen Arbitrage-Transaktionsbot für virtuelle Währungen erstellt und versucht, Geld zu verdienen
Ich habe versucht, den CPU-Kern mit Ruby voll auszunutzen
Ich habe versucht, den Zugriff von Lambda → Athena mit AWS X-Ray zu visualisieren
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
Ich habe versucht, die Geschwindigkeit von Graal VM mit JMH zu messen und zu vergleichen
Ich habe versucht, die Stream-API zusammenzufassen
Ich habe versucht, mit der Java Stream-API eine Methode zu erstellen, die mehrere Filter gleichzeitig anwendet. Ist das in Ordnung?
Lassen Sie uns eine TODO-Anwendung mit Java 2 erstellen. Ich möchte eine Vorlage mit Spring Initializr erstellen und eine Hello-Welt erstellen
[LINE @] Ich habe versucht, einen westlichen Kalender für einen japanischen Kalender zu konvertieren. BOT [Messaging API]
Ich habe eine App für maschinelles Lernen mit Dash (+ Docker) Teil 3 ~ Übung ~ erstellt
Ich habe versucht, mit HCE-F von Android eine Funktion zu implementieren, die Felica Lite entspricht
Was ich versucht habe, als ich alle Felder einer Bohne bekommen wollte
Ich habe versucht, mit Javafx ein einfaches Spiel zu machen ① "Lass uns Glücksspiel finden" (unvollendet)
[Java] Ich habe versucht, über den Verbindungspool eine Verbindung mit Servlet (Tomcat) & MySQL & Java herzustellen
Rails6 Ich möchte ein Array von Werten mit einem Kontrollkästchen erstellen
[Android] Ich habe mit ListView + Bottom Sheet einen Materiallistenbildschirm erstellt
Ich habe versucht, eine Webanwendung voller Fehler mit Spring Boot zu klonen
Ich habe versucht, eine Webanwendung zu erstellen, die Tweets mit einer Vue-Word-Cloud durchsucht und die Tendenz untersucht, was im zugehörigen Profil geschrieben steht
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe versucht, ein Personalmanagement-Tool zu entwickeln
Ich habe Java gemacht, um (a == 1 && a == 2 && a == 3) immer wahr zu machen
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Ich habe versucht, mit Java und Spring eine Funktion / einen Bildschirm für den Administrator einer Einkaufsseite zu erstellen
Ein Java-Benutzer hat vor über einem Dutzend Jahren versucht, die Funktionen von Java8 (Generics) zu untersuchen.
Ich habe versucht, ein einfaches Spiel mit Javafx zu machen ① "Lass uns Glücksspiel finden" (unvollendete Version ②)