Wie wir wissen, ist Python eine Mehrzwecksprache und wird häufig für Skripte verwendet. Seine Verwendung beschränkt sich nicht nur auf die Lösung komplexer Berechnungen, sondern auch auf die Automatisierung der täglichen Lebensaufgabe. Angenommen, wir möchten die Verfügbarkeit von Amazon-Produkten verfolgen und das Angebot abschließen, wenn sich die Produktverfügbarkeit ändert, und den Benutzer per E-Mail über die Verfügbarkeit informieren. Es wird ein großer Spaß sein, ein Python-Skript dafür zu schreiben.

Hinweis: Installieren Sie die erforderlichen Bibliotheken (gemäß Code), bevor Sie das Skript ausführen. Beachten Sie außerdem, dass keine E-Mail an den Benutzer gesendet wird, wenn das Produkt derzeit nicht verfügbar ist. Asin Id sollte er durch den Benutzer für das Produkt zur Verfügung gestellt werden will , den Überblick behalten.

Arbeitsweise jedes verwendeten Moduls:

-> Anfragen: Wird verwendet, um HTTP-Anfragen abzurufen und zu senden.
-> Zeit: Wird verwendet, um die aktuelle Zeit zu ermitteln, zu warten und zu schlafen
-> Zeitplan: Dient zum Planen einer Funktion, die nach Intervallen erneut ausgeführt werden soll. Dies ähnelt der Funktion "setInterval" in JavaScript.
-> smptlib: Wird zum Senden von E-Mails mit Python verwendet.

Unten ist die Implementierung des obigen Projekts:



from lxml import html 
import requests 
from time import sleep 
import time 
import schedule 
import smtplib  
  
receiver_email_id = "EMAIL_ID_OF_USER"
  
  
def check(url): 
    headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'} 
      
    
    
    page = requests.get(url, headers = headers)  
    for i in range(20): 
        
        
        
        sleep(3
          
        
        doc = html.fromstring(page.content) 
          
        
        XPATH_AVAILABILITY = '//div[@id ="availability"]//text()'
        RAw_AVAILABILITY = doc.xpath(XPATH_AVAILABILITY) 
        AVAILABILITY = ''.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 = product + ' product availability'
      
    
    s = smtplib.SMTP('smtp.gmail.com', 587
      
    
    s.starttls()  
      
    
    s.login(GMAIL_USERNAME, GMAIL_PASSWORD)  
      
    
    headers = "\r\n".join(["from: " + GMAIL_USERNAME, 
                        "subject: " + email_subject, 
                        "to: " + recipient, 
                        "mime-version: 1.0", 
                        "content-type: text/html"]) 
  
    content = headers + "\r\n\r\n" + body_of_email 
    s.sendmail(GMAIL_USERNAME, recipient, content) 
    s.quit()  
  
  
def ReadAsin(): 
    
    
    Asin = 'B077PWK5BT' 
    url = "http://www.amazon.in/dp/" + Asin 
    print ("Processing: "+url) 
    ans = check(url) 
    arr = [ 
        'Only 1 left in stock.', 
        'Only 2 left in stock.', 
        'In stock.'] 
    print(ans) 
    if ans in arr: 
        
        
        sendemail(ans, Asin)  
  
def job(): 
    print("Tracking...."
    ReadAsin() 
  
schedule.every(1).minutes.do(job) 
  
while True: 
      
    
    schedule.run_pending()  
    time.sleep(1) 


Ausgabe:

Verfolgung....
Verarbeitung: http://www.amazon.in/dp/B077PWK5BT
Nur noch 1 auf Lager.
Verfolgung....
Verarbeitung: http://www.amazon.in/dp/B077PWK5BT
Nur noch 1 auf Lager.
Verfolgung....
Verarbeitung: http://www.amazon.in/dp/B077PWK5BT
Nur noch 1 auf Lager.

Beachten Sie, dass das Programm beim Senden der E-Mail an den Benutzer möglicherweise einen Fehler auslöst (Kritische Sicherheitswarnung / Anmeldeversuch wurde blockiert). Dies kann durch Ändern der Sicherheitseinstellung in der von Ihnen verwendeten E-Mail-Anwendung behoben werden.