Полный код можно просмотреть здесь: https://pastebin.com/ND8EYTxA
Установите Python.
В качестве примера возьму сайт https://www.okazii.ro/
Также в качестве примера товара на этом сайте я поищу книгу: «Изучение рисунка, цвета, композиции и выразительности в церковном искусстве».
Код Python должен будет уведомить меня по электронной почте, когда эта книга снова появится на складе по цене менее 90 леев.
Упоминание: Если вы хотите, чтобы этот код работал постоянно в фоновом режиме, вам нужно будет изменить расширение файла с .py в .pyw
Перед запуском скрипта необходимо сделать следующее:
В консоли CMD (командная строка) выполните команду:pip install pythonw
Для запуска программы выполните следующую команду в CMD (в папке, где находится файл):
pythonw poznaii.pyw
Теперь процесс будет работать непрерывно в фоновом режиме. Чтобы остановить процесс, необходимо выполнить команду:
TASKKILL/F/IM pythonw.exe
ОСТОРОЖНЫЙ ! ! ! Все команды запускаются из командной строки в папке, где находится файл.
Если вы хотите просто запустить файл с помощью Python okazii.pyw, вы тоже можете это сделать, но консоль всегда следует держать открытой. Вы можете остановить выполнение с помощью ctrl + C из командной строки (CMD).
Do not use GMAIL for default email adress !
#------------------------------------------------------------------------------- # Author: Fantanaru Neculai # # Created: 16/03/2022 # Copyright: (c) Fantanaru Neculai 2022 #------------------------------------------------------------------------------- from bs4 import BeautifulSoup as bs import pandas as pd pd.set_option('display.max_colwidth', 500) import time import requests import random import re page = requests.get("https://www.okazii.ro/") soup = bs(page.content) # Studiul desenului, culorii, compozitiei si expresiei in arta eclesiala result = requests.get("https://www.okazii.ro/cautare/studiul+desenului%2C+culorii%2C+compozitiei+si+expresiei+in+arta+eclesiala.html") # preluam text dintre <!-- END SPECIALE IN LISTA--> si <!-- RECENT INTRODUSE --> produse_sectiune_pattern = re.compile('<!-- END SPECIALE IN LISTA-->([\s\S]*?)<div id=\'div-gpt-ad-15\'>') produse_sectiune = re.findall(produse_sectiune_pattern, result.text) produse_sectiune = produse_sectiune[0] preturi_pattern = re.compile('<span class=\"prSup\"><span>(.*?)</span><span class=\"seo-price-indent\">') preturi = re.findall(preturi_pattern, produse_sectiune) print(preturi) count = 0 for pret in preturi: if int(pret) < 90: # puneti <= daca vreti ca pretul sa fie si egal cu 90 RON count += 1 print("Am gasit {} oferte cu pretul sub 90 lei.".format(count)) # soup_cautare = bs(result.text, 'html.parser') # print(soup_cautare) #items = soup_cautare.find_all(class_ = 'listing-product ') #print(items) # Trimitere email import sys import smtplib from_addr = 'YOUR EMAIL ADRESS' to_addrs = ['YOUR EMAIL ADRESS'] msg = """From: Sender To: Recipient Subject: Okazii Am gasit 1 oferte cu pretul sub 90 lei. """ try: s = smtplib.SMTP('mail.neculaifantanaru.com', 26) # put here your own SMTP PORT and hosting email s.login('YOUR EMAIL ADRESS', 'PASSWORD') # do not use GMAIL !! s.sendmail(from_addr, to_addrs, msg) s.quit() except smtplib.SMTPException: print("Error: ", sys.exc_info()[0])
That's all folks.
If you like my code, then make me a favor: translate your website into Romanian, "ro".
Также ознакомьтесь с этой ВЕРСИЕЙ 2 или ВЕРСИЯ 3 или ВЕРСИЯ 4 или ВЕРСИЯ 5 или ВЕРСИЯ 6 или ВЕРСИЯ 7