[Python] Holen Sie sich Produktinformationen wie ASIN und JAN mit Amazon PA-API Version 5.0

Einführung

Amazon PA-API (Product Advertising API) wurde ab Dezember 2019 von Version 4.0 auf 5.0 umgestaltet, sodass das Skript auch für Version 5.0 neu organisiert wurde. Es war. (Muss wieder zusammengebaut werden)

Entwicklungsumgebung

Dinge, die im Voraus vorbereitet werden müssen

Nach dem Erstellen eines Amazon-Verkäuferkontos von hier

access key secret key partner tag

Bitte holt.

Bitte installieren Sie `` `amazon-paapi5``` mit pip Befehl etc.

Scratchpad Sie können die Spezifikationen von PA-API 5.0 unter [hier] überprüfen (https://webservices.amazon.com/paapi5/documentation/operations.html). Mit Scratchpad können Sie die drei oben angegebenen KEYs, die Eingabeparameter und ihre Werte einfach in das Textfeld eingeben. Sie können schlagen. Sie können die zu diesem Zeitpunkt tatsächlich generierte API-Anforderung und die JSON-Antwort darauf gemeinsam überprüfen. Es enthält auch Beispielanforderungscodes wie Python und PHP. Es ist sehr einfach zu bedienen, daher ist es eine gute Idee, es auszuprobieren, bevor Sie mit dem Schreiben von Code beginnen.

Beispielcode

Probe 1

Eingang Ausgabe
Suchbegriff ASIN
Produktpreis
Produkt-URL
Produktname

Es kann auch ein JAN-Code-Suchwort sein.

python


from amazon.paapi import AmazonAPI

KEY    = "<INPUT YOUR KEY>"
SECRET = "<INPUT YOUR SECRET KEY>"
TAG    = "<INPUT YOUR PARTNER TAG>"
COUNTRY = "JP"
keyword = "Nintendo Switch"

amazon = AmazonAPI(KEY, SECRET, TAG, COUNTRY)

products = amazon.search_items(keywords=keyword)
asin     = products["data"][0].asin
price    = products["data"][0].offers.listings[0].price.amount
url      = products["data"][0].detail_page_url
title    = products["data"][0].item_info.title.display_value

print(asin, price, url, title)

Probe 2

Eingang Ausgabe
ASIN ASIN
Produktpreis
JAN-Code
Produkt-URL
Produktname

Die Methode ".get_items ()" kann eine API-Antwort erhalten, indem bis zu 10 ASINs in einer Anforderung eingegeben werden.


#coding:utf-8
from amazon.paapi import AmazonAPI

KEY    = "<INPUT YOUR KEY>"
SECRET = "<INPUT YOUR SECRET KEY>"
TAG    = "<INPUT YOUR PARTNER TAG>"
COUNTRY = "JP"
asin_list = ["B087QZ1FWZ","B087QW57NZ","B081T9VJS4","B087QZGN24"]#Sie können bis zu 10 gleichzeitig treffen

amazon = AmazonAPI(KEY, SECRET, TAG, COUNTRY)

products = amazon.get_items(item_id_type="ASIN", item_ids=asin_list)
    #Extrahieren Sie die mit jeder ASIN verknüpften Informationen
    for asin in asin_list:
        try:
            asin  = products["data"][asin].asin
            price = int(products["data"][asin].offers.listings[0].price.amount)
            jan   = products["data"][asin].item_info.external_ids.ea_ns.display_values[0]
            url   = products["data"][asin].detail_page_url
            title = products["data"][asin].item_info.title.display_value
            print(asin, price, jan, url, title)
            
        except:
            None

Klicken Sie hier für die Version mit `` `asin.txt``` wie unten gezeigt

asin.txt


B087QZ1FWZ
B087QW57NZ
B081T9VJS4
B087QZGN24
B081T9Z4KG
B084XH5NW1
B07YNPWP5M
B086ZGFKPR
B086ZFTHY2
B084DF682G
B07QWR3KDW
B07MR6YMXC
B081T9MCG7
B084HPJWK9
B087D2NW77

python


#coding:utf-8
from amazon.paapi import AmazonAPI
from time import sleep

KEY    = "<INPUT YOUR KEY>"
SECRET = "<INPUT YOUR SECRET KEY>"
TAG    = "<INPUT YOUR PARTNER TAG>"
COUNTRY = "JP"
amazon = AmazonAPI(KEY, SECRET, TAG, COUNTRY)

def send_request(asin,b):
    products = amazon.get_items(item_id_type="ASIN", item_ids=asin_list)
    num = 0
    for asin in asin_list:
        try:
            num += 1
            asin  = products["data"][asin].asin
            price = products["data"][asin].offers.listings[0].price.amount
            jan   = products["data"][asin].item_info.external_ids.ea_ns.display_values[0]
            url         = products["data"][asin].detail_page_url
            monourl     = "https://mnrate.com/item/aid/"+asin
            title       = products["data"][asin].item_info.title.display_value
            print (asin, jan, price)
            b.write(asin+","+jan+","+title+","+price+","+url+","+monourl+"\n")
            sleep(0.1)
        except:
            None

#Berechnen Sie, wie viele API-Anforderungen benötigt werden
pages = sum([1 for _ in open('asin.txt')])/10 + 1
a = open("asin.txt","r")#Eingabedatei
b = open("jan.csv","w")#Ausgabedatei
asin_list = []
num = 0

for i in a:
    num += 1
    asin = i.rstrip()
    asin_list.append(asin)

    #Drücken Sie die API, wenn die ASIN-Liste 10 Länge erreicht
    if len(asin_list) == 10:
        send_request(asin_list,b)
        asin_list = []

    #Letzte Anfrage
    elif num == pages:
        send_request(asin_list,b)

a.close()
b.close()

monourlSie können den Verkaufszustand des Produkts auf der URL der Monorate-Seite überprüfen. Dieser Code ist übrigens für Sedori gemacht.

Recommended Posts

[Python] Holen Sie sich Produktinformationen wie ASIN und JAN mit Amazon PA-API Version 5.0
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
Holen Sie sich Alembic-Informationen mit Python
Informationen wie die GPU-Nutzung von Python abrufen (Befehl nvidia-smi)
[Python x Zapier] Erhalten Sie Warninformationen und benachrichtigen Sie mit Slack
Holen Sie sich Wetterinformationen mit Python & Scraping
[Python] Python-Paketinformationen mit der PyPI-API abrufen
Lesen Sie JSON mit Python und geben Sie CSV aus
Holen Sie sich den Git-Zweignamen und den Tag-Namen mit Python
Holen Sie sich CPU-Informationen von Raspberry Pi mit Python
Holen Sie sich den Betreff und den Text von Google Mail mit der Python- und Google Mail-API
Python-Skript zum Abrufen von Notizinformationen mit REAPER
Mit Python + Tweepy können Sie Bilder und Videos der Medienzeitleiste abrufen
Erhalten Sie Kommentare auf Youtube Live mit [Python] und [Pytchat]!
Erhalten Sie E-Mails von Google Mail und beschriften Sie sie mit Python3
Holen Sie sich ein Date mit Python
Vergleichen Sie HTTP GET / POST mit cURL (Befehl) und Python (Programmierung).
Probieren Sie Amazon Simple Workflow Service (SWF) mit Python und boto3 aus
Holen Sie sich nur die Python-Version (z. B. 2.7.5) in die CentOS 7-Shell
Implementierte abgeleitete Versionen von LSTM wie MGU und SGU mit TensorFlow
Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten
Datenbereinigung 1 Praktische Python-Notation wie Lambda und Map
Sammeln von Informationen von Twitter mit Python (Integration von MySQL und Python)
Beispiel für das Parsen von HTTP GET und JSON mit Pfefferpython
Holen Sie sich den Produktnamen und den niedrigsten Preis mit der Amazon Product Advertising API
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
Probieren Sie Juniper JUNOS PyEz (Python-Bibliothek) aus. Hinweis 2 ~ Informationen mit PyEz ~ abrufen ~
Automatisierung einer Recherche zu geografischen Informationen wie dem Speichernetzwerk mithilfe von Python und Web-API
Beachten Sie die Installation von Modulen wie pytorch und opencv mit pip in Blender Python (2.82a oder höher).