Untitled
unknown
plain_text
2 years ago
2.5 kB
8
Indexable
send_email: trimite un email.
get_current_price: "vizitează" site-ul și "citește" prețul acțiunii.
check_price_change: verifică dacă prețul s-a schimbat suficient de mult pentru a trimite un email.
main: rulează tot codul in loop, repetând verificarea la fiecare 5 minute
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException, WebDriverException
import smtplib
from email.mime.text import MIMEText
import time
previous_price = None
# Configurare
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
GMAIL_USERNAME = 'your_email@gmail.com'
GMAIL_PASSWORD = 'your_email_password'
CHECK_INTERVAL_SECONDS = 300 # Check every 5 minutes
def send_email(subject, body):
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
server.starttls()
server.login(GMAIL_USERNAME, GMAIL_PASSWORD)
msg = MIMEText(body)
msg['From'] = GMAIL_USERNAME
msg['To'] = GMAIL_USERNAME
msg['Subject'] = subject
server.sendmail(GMAIL_USERNAME, GMAIL_USERNAME, msg.as_string())
def get_current_price():
try:
# Set up driver (replace path with driver's path)
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
driver.get("https://primet.arenaxt.ro/")
driver.implicitly_wait(10)
# Localizam FP unde se afla prin inspect element
price_element = driver.find_element_by_xpath("//YOUR_XPATH_HERE")
price = float(price_element.text.replace(",", ".")) # Convert to float for calculations
return price
except NoSuchElementException:
print("Could not find the element. Maybe the website structure has changed.")
except WebDriverException as e:
print(f"WebDriver Error: {e}")
except Exception as e:
print(f"Error fetching price: {e}")
finally:
driver.quit()
def check_price_change(threshold=0.05):
global previous_price
current_price = get_current_price()
if current_price is None: # If there was an error fetching the price
return
if previous_price:
change = (current_price - previous_price) / previous_price
if abs(change) >= threshold:
send_email("FP Stock Alert!", f"FP moved by {change*100:.2f}%")
previous_price = current_price
def main():
while True:
check_price_change(0.05)
time.sleep(CHECK_INTERVAL_SECONDS)
if __name__ == "__main__":
main()
Editor is loading...