예제 #1
0
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))
예제 #2
0
    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)
예제 #3
0
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()
예제 #4
0
 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)
예제 #5
0
 def __init__(self, args):
     self.browser = create_browser(args.driver_path)
예제 #6
0
 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)