Mit der Rakuten Ichiba-API habe ich versucht, die Produktinformationen für das Schlüsselwort csv auszugeben.
Ich habe diese "Rakuten-Produktsuch-API" verwendet. Rakuten-Webdienst: Rakuten-Produktsuch-API (Version: 2017-07-06) \ | API-Liste
Ich habe Jupyter Notebook als Entwicklungsumgebung verwendet. Wenn Sie ein umfangreiches Werkzeug oder ein Werkzeug erstellen, das Sie regelmäßig ausführen möchten, müssen Sie es möglicherweise mit einem anderen Texteditor erstellen. Wenn Sie jedoch ein kleines One-Shot-Werkzeug erstellen, können Sie ein Skript schreiben, während Sie es nach und nach mit Jupyter Notebook ausprobieren. Dies ist sehr praktisch, da es sofort ausgeführt werden kann.
Die verwendeten Bibliotheken sind "Anfrage" und "Pandas". Ich habe "request" verwendet, um die API und "pandas" für die abgerufene Datenmanipulation und die CSV-Ausgabe zu treffen.
Dies wurde für eine Preiserhebung zum Verkauf landwirtschaftlicher Produkte durchgeführt. Basierend auf den erfassten Informationen wird davon ausgegangen, dass weitere Analysen durchgeführt werden, um eine Entscheidung zu treffen (diesmal werden Informationen erfasst).
Es gibt verschiedene Direktvertriebsstandorte, aber Rakuten Ichiba ist bekannt, hat eine große Anzahl von Produkten und bietet APIs, daher dachte ich, es wäre einfach zu bekommen.
Um die API nutzen zu können, müssen Sie zuerst eine App von Rakutens Entwicklerseite erstellen und eine ID erhalten, bevor Sie mit dem Schreiben von Skripten beginnen.
Diese Rakuten Entwickler Seite Rakuten-Webdienst: API-Liste
Erstellen Sie eine App aus "+ App-ID ausgeben" oben rechts. Wenn Sie die hier erhaltene App-ID verwenden, wenn Sie sie in Ihrem eigenen Skript ausführen, können Sie auf Informationen zu Rakuten Ichiba zugreifen und diese streamen.
Es wäre schön, APIs für andere Rakuten-Dienste (Rakuten Travel, Rakuten Recipe usw.) sowie Rakuten Ichiba zu haben. Ich würde es gerne benutzen, wenn ich eine Chance habe.
Dieses Mal erhalten wir Produktinformationen, die den Kartoffelsortennamen "Make-in" als Schlüsselwort enthalten.
Importieren Sie zunächst die erforderlichen Bibliotheken.
import requests
import numpy as np
import pandas as pd
Ich möchte es später verwenden, daher werde ich auch "NumPy" einschließen. Es gibt kein Problem, auch wenn Sie es nicht verwenden. Als nächstes ein Skript, das die API aufruft, um Informationen abzurufen.
REQUEST_URL = "https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706"
APP_ID="<Geben Sie hier die von Rakutens Website erhaltene App-ID ein>"
serch_keyword = 'Make-in'
serch_params={
"format" : "json",
"keyword" : serch_keyword,
"applicationId" : [APP_ID],
"availability" : 0,
"hits" : 30,
"page" : 1,
"sort" : "-updateTimestamp"
}
response = requests.get(REQUEST_URL, serch_params)
result = response.json()
Jetzt können Sie die Informationen in Form einer Diktat-Typ-Liste mit result ['Items']
erhalten. Dieses Mal wurden 30 Produkte erworben (der durch "Treffer" angegebene Wert: 30 "in" serch_params ". Dies ist der maximale Wert, der gleichzeitig erworben werden kann).
Darüber hinaus kann beispielsweise durch Setzen von "Ergebnis [" Elemente "] [2] [" Element "]" das zweite Element aus den erworbenen Elementen als Diktattyp erfasst werden. Wenn Sie sich das Skript kurz ansehen
REQUEST_URL
ist in Rakuten-Webdienst: Rakuten-Produktsuch-API (Version: 2017-07-06) \ | API-Liste aufgeführt. Geben Sie die Anforderungs-URL an.
Geben Sie unter "APP_ID" die App-ID ein, die Sie zuvor auf der Entwicklerseite von Rakuten erhalten haben.
Durch Angabe der Zeichenfolge, die Sie mit "serch_keyword" suchen möchten, werden Produkte durchsucht, die diesem Schlüsselwort entsprechen.
Es scheint einfach zu sein zu sein, selbst wenn Sie hier Benutzereingaben mit Pythons input ()
Funktion akzeptieren.
Schreiben Sie in serch_params
die Parameter zum Senden einer Anfrage in dikt Typ. Rakuten-Webdienst: Rakuten-Produktsuch-API (Version: 2017-07-06) \ | API-Liste Details im Abschnitt "Eingabeparameter" Ist aufgelistet. Es scheint, dass für diesen Parameter "applicationId" (Anwendungs-ID) erforderlich ist und dafür "APP_ID" angegeben ist und eines der Schlüsselwörter "keyword", "shopCode", "itemCode" und "genreId" erforderlich ist.
Dieses Mal möchte ich die Produktinformationen über das Suchwort erhalten, daher habe ich das vorherige "serch_keyword" für "keyword" angegeben.
Zum Beispiel ist diese "Seite": 1 eine Erfassungsseite, so dass Sie anscheinend leicht eine große Menge von Produktinformationen über mehrere Seiten erfassen können, indem Sie diesen numerischen Wert mit einer for-Anweisung in einer Schleife durchlaufen.
Übrigens lautet das Diktat, das ich durch früheres Klicken auf die API erhalten habe, Rakuten-Webdienst: Rakuten-Produktsuch-API (Version: 2017-07-06) \ | API-Liste Die im Abschnitt "Ausgabeparameter" von / ichibaitemsearch /) aufgeführten Elemente sind als Diktatschlüssel und -werte enthalten.
Wenn Sie beispielsweise den Schlüssel als "Ergebnis" angeben, können Sie den Produktnamen abrufen.
Die zu diesem Zeitpunkt erfassten Informationen sind unpraktisch zu handhaben, da sie so wie sie sind zusätzliche Informationen enthalten. Daher werde ich ein Diktat erstellen, das nur die erforderlichen Informationen enthält.
Die Daten brauchen wir diesmal 「itemName」「itemPrice」「itemCaption」「shopName」「shopUrl」「itemUrl」 (Später dachte ich, dass die Versandflagge "postageFlag" ebenfalls notwendig ist, aber sie spiegelt sich nicht im folgenden Skript wider).
#Drehen Sie die for-Anweisung, um ein Diktat zu machen
item_key = ['itemName', 'itemPrice', 'itemCaption', 'shopName', 'shopUrl', 'itemUrl']
item_list = []
for i in range(0, len(result['Items'])):
tmp_item = {}
item = result['Items'][i]['Item']
for key, value in item.items():
if key in item_key:
tmp_item[key] = value
item_list.append(tmp_item)
Jetzt können Sie eine Liste mit Produktinformationen vom Typ dikt erhalten.
Was hier hängen blieb, war, dass ich die copy ()
Methode unteritem_list.append (tmp_item.copy ())
verwenden musste.
Wenn Sie "item_list.append (tmp_item)" ohne diese Methode verwenden, erhalten Sie ein Diktat, das mehrere Artikel eines Produkts enthält, und Sie müssen den Kopf drehen und die Tage überspannen.
Der folgende Artikel hat mir geholfen.
Diese Theorie scheint verstanden zu werden, daher möchte ich sie separat zusammenfassen.
Wenn Sie eine Liste mit Diktattypen erstellen können, ist der Rest nicht schwierig und die grundlegende Bedienung von "Pandas" ist ausreichend. Erstellen Sie einen Datenrahmen und formatieren Sie ihn ein wenig, um die Verwendung zu vereinfachen.
#Erstellen Sie einen Datenrahmen
item_df = pd.DataFrame(item_list)
#Ändern Sie die Reihenfolge der Spalten
items_df = items_df.reindex(columns=['itemName', 'itemPrice', 'itemCaption', 'itemUrl', 'shopName', 'shopUrl'])
#Ändern Sie den Spaltennamen und die Zeilennummer:Spaltennamen sollten in Japanisch sein und Zeilennummern sollten Seriennummern sein, die mit 1 beginnen.
items_df.columns = ['Produktname', 'Produktpreis', 'Produktbeschreibung', 'Produkt-URL', 'Speichername', 'URL speichern']
items_df.index = np.arange(1, 31)
Geben Sie den erstellten Datenrahmen in eine CSV-Datei aus.
items_df.to_csv('./rakuten_mayqueen.csv')
Geben Sie im Argument der Methode "df.to_csv ()" den Speicherzielpfad (Verzeichnis und Dateiname) an. Dieses Mal habe ich eine CSV-Datei direkt unter dem Verzeichnis erstellt, in dem sich dieses Skript befindet, und dabei einen relativen Pfad verwendet.
Öffnen wir nun die Ausgabedaten mit Excel oder SpreadSheet.
Ich konnte es gut bekommen!
Vorerst konnte ich Produktinformationen von Rakuten Ichiba erhalten und sogar CSV ausgeben. Als zukünftige Politik,
** (1) Datenerfassung und -formung ** Sammeln Sie so viele Daten wie nötig und formen Sie sie zu einem Formular, das verwendet werden kann.
** (2) Analyse und Entscheidungsfindung der gesammelten Daten ** Versuchen Sie, einen angemessenen Preis zu erzielen, indem Sie die Daten als Beurteilungsmaterial verwenden (Entscheidung) Deshalb möchte ich beim nächsten Mal ein wenig komplizierte Daten sammeln und formatieren.
Recommended Posts