Verifica della disponibilità dei prodotti Amazon tramite Python

| | | | | |

Come sappiamo, Python è un linguaggio multiuso ampiamente utilizzato per lo scripting. Il suo utilizzo non si limita solo alla risoluzione di calcoli complessi, ma anche all`automazione delle attività quotidiane. Diciamo che vogliamo monitorare la disponibilità di qualsiasi prodotto Amazon e concludere un accordo quando la disponibilità del prodotto cambia, nonché informare l`utente della disponibilità tramite e-mail. Sarà molto divertente scrivere uno script Python per questo. Nota. Installare le librerie richieste (secondo il codice) prima di eseguire lo script. Si noti inoltre che se il prodotto non è attualmente disponibile, non verrà inviata alcuna e-mail all`utente. L`Asin Id deve essere fornito dall`utente per il prodotto che desidera monitorare.

Funzionamento di ogni modulo utilizzato:
  • -> request: Utilizzato per ottenere e pubblicare HTTP richieste
  • -> ora: utilizzata per trovare l`ora corrente, attendere, dormire
  • -> pianificazione: utilizzata per programmare una funzione da eseguire nuovamente dopo intervalli. È simile alla funzionalità "setInterval‚" in JavaScript.
  • -> smptlib: utilizzato per inviare e-mail utilizzando Python.

# Script Python per il controllo della disponibilità dei prodotti Amazon # importazione librerie da lxml import html richieste di importazione dall`ora import sleep import time import schedule import smtplib # ID email per chi vuole verificare 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, come Gecko) Chrome/42.0.2311.90 Safari/537.36`} # aggiunta di intestazioni per mostrare che sei # un browser che sta inviando una richiesta GET page = request.get(url, headers = headers) for i in range(20): # perché controlli continui in # millisecondi o pochi secondi # blocca la tua richiesta sleep(3) # analisi del contenuto html doc = html.fromstring(page .content) # verifica disponibilità XPATH_AVAILABILITY = `//div[@id ="availability"]//text()` RAw_AVAILABILITY = doc.xpath(XPATH_AVAILABILITY) DISPONIBILE ITY = ``.join(RAw_AVAILABILITY).strip() if RAw_AVAILABILITY else Nessuno 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 = prodotto + `disponibilità del prodotto ` # crea una sessione SMTP s = smtplib.SMTP(`smtp.gmail.com`, 587) # avvia TLS per sicurezza s.starttls() # Autenticazione s.login(GMAIL_USERNAME, GMAIL_PASSWORD) # messaggio da inviare headers = " " .join(["from: " + GMAIL_USERNAME, "subject: " + email_subject, "to: " + destinatario, "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 è l`ID prodotto che # deve essere fornito dall`utente Asin = `B077PWK5BT` url = "http:// www.amazon.in/dp/" + Asin print ("Elaborazione: "+url) ans = check(url) arr = [ `Solo 1 disponibile in magazzino.`, `Solo 2 in magazzino.`, `Disponibile .`] print(ans) if ans in arr: # s e-mail finale all`utente se # in caso di prodotto disponibile sendemail(ans, Asin) # pianificazione dello stesso codice per l`esecuzione più # volte dopo ogni 1 minuto def job(): print("Tracciamento....") ReadAsin() schedule.every (1).minutes.do(job) while True: # esecuzione di tutte le attività/lavori in sospeso schedule.run_pending() time.sleep(1) 

Output:

Tracciamento.. .. Elaborazione: http://www.amazon.in/dp/B077PWK5BT Solo 1 con disponibilità immediata. Tracciamento.... Elaborazione: http://www.amazon.in/dp/B077PWK5BT Solo 1 con disponibilità immediata. Tracciamento.... Elaborazione: http://www.amazon.in/dp/B077PWK5BT Solo 1 con disponibilità immediata. 

Come creare un controllo disponibilità stock con richieste Python se viene utilizzato JavaScript?

Domanda StackOverflow

Ho scritto del codice che dovrebbe verificare se un prodotto è di nuovo disponibile e quando lo è, inviami un`e-mail per avvisarmi. Funziona quando le cose che sto cercando sono nell`html.

Tuttavia, a volte alcuni oggetti vengono caricati tramite JavaScript. Come posso modificare il mio codice in modo che lo scraping web funzioni anche con JavaScript?

Questo è il mio codice finora:

< codice class="hljs language-python">importazione ora importazione richieste while Vero: # Ottieni l`URL della pagina IKEA url = `https://www.ikea.com/nl/nl/p/flintan-bureaustoel-vissle-zwart-20336841/` # Ottieni il testo da quella pagina e metti tutto in minuscolo productpage = request.get(url).text.lower() # Imposta le stringhe che dovrebbero essere nella pagina se il prodotto non è disponibile outofstockstrings = [`niet beschikbaar voor levering`, `alleen beschikbaar in de winkel `] # Controlla se le stringhe sono nel testo della pagina web se qualsiasi(x in pagina prodotto per x in outofstockstrings): time.sleep(1800) continua altro: # mandami un`email e interrompi il ciclo 

Risposta:

Invece di raschiare e analizzare l`HTML potresti usare lo stock non ufficiale API che utilizza anche il sito web IKEA. Quell`API restituisce dati JSON che sono molto più facili da analizzare e riceverai anche stime quando il prodotto tornerà in stock.

C`è anche un progetto scritto in javascript / node che ti fornisce questo tipo di informazioni direttamente dalla riga di comando: https://github.com/Ephigenia/ikea-availability-checker< /a>

Puoi controllare facilmente la quantità di stock della sedia in tutti i negozi dei Paesi Bassi:

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