Vérification de la disponibilité des produits Amazon à l`aide de Python

| | | | | |

Comme nous le savons, Python est un langage polyvalent largement utilisé pour les scripts. Son utilisation ne se limite pas seulement à la résolution de calculs complexes, mais également à l`automatisation des tâches quotidiennes. Supposons que nous souhaitions suivre la disponibilité de tout produit Amazon et conclure une offre lorsque la disponibilité du produit change, ainsi qu`informer l`utilisateur de la disponibilité par e-mail. Ce sera très amusant d`écrire un script Python pour cela. Noter. Installez les bibliothèques requises (selon le code) avant d`exécuter le script. Notez également que si le produit n`est pas disponible actuellement, aucun email ne sera envoyé à l`utilisateur. L`Asin Id doit être fourni par l`utilisateur pour le produit qu`il souhaite suivre.

Fonctionnement de chaque module utilisé :
  • -> requêtes : utilisé pour obtenir et publier HTTP demandes
  • -> heure : utilisé pour trouver l`heure actuelle, attendre, dormir
  • -> planification : utilisé pour programmer une fonction pour qu`elle s`exécute à nouveau après des intervalles. Il est similaire à la fonctionnalité "setInterval" en JavaScript.
  • -> smptlib : utilisé pour envoyer des e-mails à l`aide de Python.

# Script Python pour le vérificateur de disponibilité des produits Amazon # importation de bibliothèques à partir de lxml import html import requests from time import sleep import time import schedule import smtplib # Email id pour qui veut vérifier la disponibilité receiver_email_id = "EMAIL_ID_OF_USER" def check(url): headers = {` User-Agent` : `Mozilla/5.0 (X11 ; Linux x86_64) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/42.0.2311.90 Safari/537.36`} # ajout d`en-têtes pour montrer que vous êtes # un navigateur qui envoie une requête GET page = requests.get(url, headers = headers) for i in range(20): # car des vérifications continues en # millisecondes ou quelques secondes # bloquent votre requête sleep(3) # analyse du contenu html doc = html.fromstring(page .content) # vérification de la disponibilité XPATH_AVAILABILITY = `//div[@id ="availability"]//text()` RAw_AVAILABILITY = doc.xpath(XPATH_AVAILABILITY) DISPONIBILITÉ ITY = ``.join(RAw_AVAILABILITY).strip() if RAw_AVAILABILITY else None return AVAILABILITY def sendemail(ans, product): GMAIL_USERNAME = "YOUR_GMAIL_ID" GMAIL_PASSWORD = "YOUR_GMAIL_PASSWORD" recipient = receiver_email_id body_of_email = ans email_subject = produit + ` disponibilité du produit ` # crée une session SMTP s = smtplib.SMTP(`smtp.gmail.com`, 587) # démarre TLS pour la sécurité s.starttls() # Authentification s.login(GMAIL_USERNAME, GMAIL_PASSWORD) # message à envoyer headers = " " .join(["from : " + GMAIL_USERNAME, "subject: " + email_subject, "to : " + recipient, "mime-version : 1.0", "content-type : text/html"]) content = headers + " " + body_of_email s.sendmail(GMAIL_USERNAME, recipient, content) s.quit() def ReadAsin() : # Asin Id est l`identifiant du produit qui # doit être fourni par l`utilisateur Asin = `B077PWK5BT` url = "http:// www.amazon.in/dp/" + Asin print ("Traitement : "+url) ans = check(url) arr = [ `Seulement 1 en stock.`, `Seulement 2 en stock.`, `En stock .`] print(ans) si ans dans arr : # s fin de l`e-mail à l`utilisateur si # dans le cas où le produit est disponible sendemail(ans, Asin) # planification du même code pour qu`il s`exécute plusieurs fois # toutes les 1 minute def job(): print("Tracking....") ReadAsin() schedule.every (1).minutes.do(job) while True : # exécution de toutes les tâches/tâches en attente schedule.run_pending() time.sleep(1) 

Sortie :

Suivi.. .. Traitement : http://www.amazon.in/dp/B077PWK5BT Plus que 1 en stock. Suivi.... Traitement : http://www.amazon.in/dp/B077PWK5BT Plus que 1 en stock. Suivi.... Traitement : http://www.amazon.in/dp/B077PWK5BT Plus que 1 en stock. 

Comment créer un vérificateur de disponibilité des stocks avec des requêtes python si JavaScript est utilisé ?

Question StackOverflow

J`ai écrit un code qui devrait vérifier si un produit est de nouveau en stock et quand il le sera, envoyez-moi un e-mail pour m`en informer. Cela fonctionne lorsque les éléments que je recherche se trouvent dans le code HTML.

Cependant, certains objets sont parfois chargés via JavaScript. Comment puis-je modifier mon code pour que le scraping Web fonctionne également avec JavaScript ?

Voici mon code jusqu`à présent :

import temps import requêtes alors que Vrai : # Obtenir l`url de la page IKEA url = `https://www.ikea.com/nl/nl/p/flintan-bureaustoel-vissle-zwart-20336841/` # Récupérez le texte de cette page et mettez tout en minuscules productpage = requests.get(url).text.lower() # Définissez les chaînes qui doivent figurer sur la page si le produit n`est pas disponible outofstockstrings = [`niet beschikbaar voor levering`, `alleen beschikbaar in de winkel `] # Vérifiez si les chaînes sont dans le texte de la page Web si tout(x dans la page produit pour x dans outofstockstrings) : time.sleep(1800) continuer autre : # envoyez-moi un e-mail et rompez la boucle 

Réponse :

Au lieu de gratter et d`analyser le HTML, vous pouvez utiliser le stock non officiel API que le site Web IKEA utilise également. Cette API renvoie des données JSON qui sont beaucoup plus faciles à analyser et vous obtiendrez également des estimations lorsque le produit sera de nouveau en stock.

Il existe même un projet écrit en javascript / node qui vous fournit ce type d`informations directement depuis la ligne de commande : https://github.com/Ephigenia/ikea-availability-checker< /a>

Vous pouvez facilement vérifier le montant du stock de la chaise dans tous les magasins aux Pays-Bas :

npx ikea-availability-checker stock --country nl 20336841 

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method