Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: utf-8
- # adapted from: https://freres.peyronnet.eu/scraping-en-python-pour-etre-alerte-des-nouveaux-creneaux-drive-chez-super-u/
- import requests
- from bs4 import BeautifulSoup
- import time
- from lxml import html
- from tkinter import Label, Entry, Button, Tk
- import tkinter as tk
- def main_search_loop(slot_string_var, url_entry, refresh):
- slot_string_var.set("Créneau disponible: (recherche en cours...)")
- while True:
- resp = requests.get(url_entry.get())
- data = resp.content
- soup = BeautifulSoup(data, "lxml")
- tree = html.fromstring(data)
- isit = tree.xpath('//a[@class="store__content-delivery hidden"]/text()')
- if not len(isit) or isit[0] == "Information momentanément indisponible":
- slot_string_var.set(
- 'Créneau disponible: Information momentanément indisponibles, nouvelle tentative dans {} minute(s)'.format(refresh.get())
- )
- time.sleep(int(refresh.get())*60)
- continue
- else:
- slot_string_var.set('Créneau disponible: {}'.format(isit[0]))
- print('créneau disponible: {}'.format(isit[0]))
- break
- window = Tk()
- window.title("drive-u delivery slot tracker")
- window.geometry('650x400')
- url_label = Label(window, text="URL du magasin:")
- url_label.grid(column=0, row=0)
- url_entry = Entry(window, width=50)
- url_entry.insert(0, "https://www.coursesu.com/drive-superu-montpellier")
- url_entry.grid(column=0, row=1)
- refresh_label = Label(window, text="Rafraichir toutes les (minutes): ")
- refresh_label.grid(column=0, row=2)
- refresh_entry = Entry(window, width=4, text='1')
- refresh_entry.insert(0, '1')
- refresh_entry.grid(column=1, row=2)
- slot_string_var = tk.StringVar(value="Créneau disponible: ")
- slot_label = Label(window, textvariable=slot_string_var)
- slot_label.grid(column=0, row=3)
- btn = Button(window, text="Rechercher", command= lambda: main_search_loop(slot_string_var,
- url_entry,
- refresh_entry))
- btn.grid(column=4, row=4)
- window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement