[Python] Obtenez des informations produit telles que ASIN et JAN avec Amazon PA-API ver5.0

introduction

Amazon PA-API (Product Advertising API) a été repensé de la version 4.0 à 5.0 à partir de décembre 2019, le script a donc également été réorganisé pour la version 5.0. C'était. (Besoin de remonter)

Environnement de développement

Choses à préparer à l'avance

Après avoir créé un compte vendeur Amazon, depuis ici

access key secret key partner tag

Veuillez obtenir.

Veuillez installer amazon-paapi5 avec la commande pip etc.

Scratchpad Vous pouvez vérifier les spécifications de PA-API 5.0 à ici. Avec Scratchpad, vous pouvez facilement entrer les trois KEY spécifiées ci-dessus, les paramètres d'entrée et leurs valeurs dans la zone de texte. Vous pouvez frapper. Vous pouvez vérifier la demande d'API réellement générée à ce moment-là et la réponse JSON à celle-ci ensemble. Il fournit également des exemples de codes de requête tels que Python et PHP. Il est très facile à utiliser, c'est donc une bonne idée de l'essayer avant de commencer à écrire du code.

Exemple de code

Échantillon 1

contribution production
Rechercher un mot ASIN
Prix du produit
URL du produit
Titre du produit

Il peut également s'agir d'un mot de recherche de code JAN.

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)

Échantillon 2

contribution production
ASIN ASIN
Prix du produit
Code JAN
URL du produit
Titre du produit

La méthode .get_items () peut obtenir une réponse API en saisissant jusqu'à 10 ASIN dans une seule requête.


#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"]#Vous pouvez frapper jusqu'à 10 à la fois

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

products = amazon.get_items(item_id_type="ASIN", item_ids=asin_list)
    #Extraire les informations associées à chaque ASIN
    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

Cliquez ici pour la version avec asin.txt comme indiqué ci-dessous

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

#Calculez le nombre de demandes d'API nécessaires
pages = sum([1 for _ in open('asin.txt')])/10 + 1
a = open("asin.txt","r")#Fichier d'entrée
b = open("jan.csv","w")#Fichier de sortie
asin_list = []
num = 0

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

    #Frappez l'API lorsque la liste ASIN atteint 10 longueur
    if len(asin_list) == 10:
        send_request(asin_list,b)
        asin_list = []

    #Dernière requete
    elif num == pages:
        send_request(asin_list,b)

a.close()
b.close()

monourlVous pouvez vérifier les conditions de vente du produit sur l'url de la page monorate. Au fait, ce code est fait pour Sedori.

Recommended Posts

[Python] Obtenez des informations produit telles que ASIN et JAN avec Amazon PA-API ver5.0
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
Obtenez des informations sur l'alambic avec Python
Obtenir des informations telles que l'utilisation du GPU à partir de Python (commande nvidia-smi)
[Python x Zapier] Obtenez des informations d'alerte et notifiez avec Slack
Obtenez des informations météorologiques avec Python et le grattage
[Python] Obtenez des informations sur le package Python avec l'API PyPI
Lire JSON avec Python et générer un CSV
Obtenez le nom de la branche git et le nom de la balise avec python
Obtenez des informations sur le processeur de Raspberry Pi avec Python
Obtenez l'objet et le corps de Gmail avec Python et l'API Gmail
Script Python pour obtenir des informations de note avec REAPER
Obtenez des images et des vidéos de la chronologie des médias avec Python + Tweepy
Obtenez des commentaires sur youtube Live avec [python] et [pytchat]!
Recevoir des e-mails de Gmail et étiqueter avec Python3
Obtenez date avec python
Comparez HTTP GET / POST avec cURL (commande) et Python (programmation)
Essayez Amazon Simple Workflow Service (SWF) avec Python et boto3
Obtenez uniquement la version Python (telle que 2.7.5) sur le shell CentOS 7
Implémentation de versions dérivées de LSTM telles que MGU et SGU avec TensorFlow
Débarrassez-vous des données sales avec Python et les expressions régulières
Nettoyage des données 1 Notation Python pratique telle que lambda et map
Collecte d'informations sur Twitter avec Python (intégration de MySQL et Python)
Exemple d'analyse HTTP GET et JSON avec Pepper Python
Obtenez le nom du produit et le prix le plus bas à l'aide de l'API Amazon Product Advertising
Obtenez des données supplémentaires vers LDAP avec python (Writer et Reader)
Essayez Juniper JUNOS PyEz (bibliothèque python) Note 2 ~ Obtenez des informations avec PyEz ~
Automatisation d'une recherche sur des informations géographiques telles que le réseau de magasins à l'aide de Python et de l'API Web
Notez l'installation de modules tels que pytorch et opencv avec pip dans Blender python (2.82a ou version ultérieure)