#632 No, es bastante fácil de usar, solo tendréis de añadir algunos datos para que os mande los mails y haga loggin en pccomponentes, luego se ejecuta desde la consola como cualquier script python (py script.py), lógicamente antes hay que instalar python, pero es muy fácil.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located
from multiprocessing import Process
import numpy as np
import yagmail
import time
options = Options()
options.page_load_strategy = 'eager'
#options.page_load_strategy = 'normal'
login_url = 'https://www.pccomponentes.com/login'
search_url = 'https://www.pccomponentes.com/buscar/?query=rx+6800+xt'
driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 10)
maxPrice=700 #precio maximo
username= '' #datos pccomponentes para loggin (no se usa)
password= '' #datos pccomponentes para loggin (no se usa)
usergmail='' #datos para yagmail
passgmail='' #datos para yagmail
mailtosend='' #mail donde se manda notificacion
def logging(username, password):
# for logging into amazon
driver.get(login_url)
driver.find_element_by_xpath(
'//*[@name="username"]').send_keys(username)
driver.find_element_by_xpath(
'//*[@name="password"]').send_keys(password + Keys.RETURN)
# end of login code
def search():
driver.get(search_url)
articulos = []
# articulos = driver.find_elements_by_xpath('//div[@id="articleListContent"]')
for i in driver.find_elements_by_xpath('//a[@class="GTM-productClick enlace-superpuesto cy-product-hover-link"]'):
#print('Modelo:'+i.get_attribute("data-name"))
#print('Id:'+i.get_attribute("data-id"))
#print('Precio:'+i.get_attribute("data-price"))
#print('Stock:'+i.get_attribute("data-stock-web"))
#print('link:'+i.get_attribute("href"))
#print('Sku:'+i.get_attribute("data-sku"))
if float(i.get_attribute("data-price")) < float(maxPrice):
articulos.append([i.get_attribute("data-price"),i.get_attribute("data-name"),i.get_attribute("href"),i.get_attribute("data-id")])
#print(mat)
return articulos
def purchase(articulo):
# for getting into our product page
driver.get(articulo[2])
time.sleep(3)
if(len(driver.find_elements_by_xpath('//button[@id="notify-me"]')) == 0):
print("Disponible "+articulo[2])
# click en el boton de compra
#driver.find_element_by_xpath('//button[@class="btn btn-primary btn-lg buy GTM-addToCart buy-button js-article-buy"]').click()
try:
#initializing the server connection
yag = yagmail.SMTP(user=usergmail, password=passgmail)
#sending the email
yag.send(to=mailtosend, subject=articulo[1], contents= articulo[2]+"</BR> <h1>Precio:"+articulo[0]+"</h1>")
print("Email sent successfully")
except:
print("Error, email was not sent")
#elif(len(driver.find_elements_by_xpath('//button[@id="notify-me"]')) != 0):
# print("No disponible "+articulo[2])
if __name__ == '__main__':
#logging(username, password)
while True:
print("Buscando Resultados...")
articulos = search()
for articulo in articulos:
#print("Procesando:"+articulo[1])
purchase(articulo)
print("Esperando 30 segundos para nueva busqueda...")
time.sleep(30)
Necesitáis tener esto:
https://chromedriver.chromium.org/downloads
Y esto:
https://blog.mailtrap.io/yagmail-tutorial/
En el parámetro : search_url = 'https://www.pccomponentes.com/buscar/?query=rx+6800+xt' es donde metéis la url de búsqueda que queréis .