nicuf

Notify Me by Email When A Certain Product Appears In The Store

Mar 16th, 2022 (edited)
472
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.36 KB | None | 0 0
  1. -----------------
  2. EXPLANATION:
  3.  
  4. ROMANIAN: https://neculaifantanaru.com/python-anunta-cand-apare-in-magazin-un-anumit-produs-in-functie-de-pretul-cel-mai-mic.html
  5.  
  6. ENGLISH:  https://neculaifantanaru.com/en/python-notifies-me-when-a-certain-product-appears-in-the-store-depending-on-the-lowest-price.html
  7. -----------------
  8.  
  9.  
  10. #-------------------------------------------------------------------------------
  11. # Author:      Fantanaru Neculai
  12. #
  13. # Created:     16/03/2022
  14. # Copyright:   (c) Fantanaru Neculai 2022
  15. #-------------------------------------------------------------------------------
  16.  
  17. from bs4 import BeautifulSoup as bs
  18. import pandas as pd
  19. pd.set_option('display.max_colwidth', 500)
  20. import time
  21. import requests
  22. import random
  23. import re
  24.  
  25. page = requests.get("https://www.okazii.ro/")
  26.  
  27. soup = bs(page.content)
  28.  
  29. # Studiul desenului, culorii, compozitiei si expresiei in arta eclesiala
  30. result = requests.get("https://www.okazii.ro/cautare/studiul+desenului%2C+culorii%2C+compozitiei+si+expresiei+in+arta+eclesiala.html")
  31.  
  32. # preluam text dintre <!-- END SPECIALE IN LISTA--> si <!-- RECENT INTRODUSE -->
  33. produse_sectiune_pattern = re.compile('<!-- END SPECIALE IN LISTA-->([\s\S]*?)<div id=\'div-gpt-ad-15\'>')
  34. produse_sectiune = re.findall(produse_sectiune_pattern, result.text)
  35. produse_sectiune = produse_sectiune[0]
  36.  
  37. preturi_pattern = re.compile('<span class=\"prSup\"><span>(.*?)</span><span class=\"seo-price-indent\">')
  38. preturi = re.findall(preturi_pattern, produse_sectiune)
  39. print(preturi)
  40.  
  41. count = 0
  42. for pret in preturi:
  43.     if int(pret) < 90:  # puneti <= daca vreti ca pretul sa fie si egal cu 90 RON
  44.         count += 1
  45. print("Am gasit {} oferte cu pretul sub 90 lei.".format(count))
  46.  
  47. # soup_cautare = bs(result.text, 'html.parser')
  48. # print(soup_cautare)
  49.  
  50. #items = soup_cautare.find_all(class_ = 'listing-product ')
  51. #print(items)
  52.  
  53.  
  54. # Trimitere email
  55. import sys
  56. import smtplib
  57.  
  58. from_addr = 'YOUR EMAIL ADRESS'
  59. to_addrs = ['YOUR EMAIL ADRESS']
  60. msg = """From: Sender
  61. To: Recipient
  62. Subject: Okazii
  63.  
  64. Am gasit 1 oferte cu pretul sub 90 lei.
  65. """
  66.  
  67. try:
  68.     s = smtplib.SMTP('mail.neculaifantanaru.com', 26) # put here your own SMTP PORT and hosting email
  69.     s.login('YOUR EMAIL ADRESS', 'PASSWORD')  # do not use GMAIL !!
  70.     s.sendmail(from_addr, to_addrs, msg)
  71.     s.quit()
  72. except smtplib.SMTPException:
  73.     print("Error: ", sys.exc_info()[0])
  74.  
Add Comment
Please, Sign In to add comment