def browser_crawler(product_url): # Cria o navegador browser = create_browser() # Acessa a pagina do produto browser.get(product_url) # Pega o texto do titulo title = browser.find_element_by_css_selector(".js-header-product h1").text # Pega o preço pelo atributo content price = browser.find_element_by_css_selector( ".price-template-price-block meta[itemprop='price']").get_attribute( "content") # Fecha o navegador browser.close() # Cria um objeto com o titulo e o preço data = {} data["title"] = title data["price"] = float(price) print(data) # Verifica se o preço novo é menor do que o antigo should_notify = diff_price(data["price"]) # Salva o preço atual em arquivo save_data(data) # Se deve notificar notificamos no twitter if should_notify: notify_on_twitter("Seu produto {} está custando R${}".format( title, price))
def __init__(self, username, password, email=None, sendgrid_api_key=None, sender=None, debug=False): self.username = username self.password = password self.sendgrid_api_key = sendgrid_api_key self.sender = sender self.email = email self.browser = create_browser(debug=debug)
def notify_on_twitter(message): # Cria o navegador browser = create_browser() # Acessa a pagina de login do twitter browser.get('https://twitter.com/login') # Procura o campo de usuario, clica e digita o nome do usuario user = '******' login_input = browser.find_element_by_css_selector('input.js-username-field') login_input.click() login_input.send_keys(user) time.sleep(1) # Procura o campo de senha, clica e digita o nome do senha password = '******' pass_input = browser.find_element_by_css_selector('input.js-password-field') pass_input.click() pass_input.send_keys(password) # Clica em login browser.find_element_by_css_selector('button.submit').click() # Acessa o meu perfil profile_url = 'https://twitter.com/gabrielgene_' browser.get(profile_url) # Clica em twittar pra mim browser.find_element_by_css_selector('button.NewTweetButton').click() time.sleep(1) # Procura o campo de texto e digita a mensagem de notificacao text_area = browser.find_element_by_css_selector('div#tweet-box-global') text_area.click() now = datetime.datetime.now() hour = now.strftime("%Y-%m-%d %H:%M:%S") text_area.send_keys("{} - {}".format(message, hour)) # Clica no botão de twittar browser.find_element_by_css_selector('div.TweetBoxToolbar > div.TweetBoxToolbar-tweetButton.tweet-button > button').click() time.sleep(3) browser.close()
def setup_class(self): """opens browser and creates some random item names for these tests""" self.driver = utils.create_browser() self.base_url = config.BASE_URL self.base_item_name = "page_" + utils.generate_random_word(5) self.subitem_name = "subitem_" + utils.generate_random_word(5)
def __init__(self, args): self.browser = create_browser(args.driver_path)
def setup_class(self): """opens browser and creates some random item names for these tests""" self.driver = utils.create_browser() self.base_url = config.BASE_URL self.base_item_name = u"page_" + utils.generate_random_word(5) self.subitem_name = u"subitem_" + utils.generate_random_word(5)