-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWholeFoodsSelenium.py
101 lines (58 loc) · 2.34 KB
/
WholeFoodsSelenium.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.remote.webdriver import WebDriver
from bs4 import BeautifulSoup
import sys
import time
import re
from twilio.rest import Client
def sendSMS(phoneNumbers, message):
account = accountnumber
token = token
client = Client(account, token)
for number in phoneNumbers:
message = client.messages.create(to=number, from_=from_number,
body=message)
def grabAvailability(wd):
soup = BeautifulSoup(wd.page_source)
pattern = re.compile(r"date-select-toggle-text-availability")
matches = soup.find_all('div', {'class':pattern})
message = ""
notAvailable = lambda i : "\nToday not available\n" if i == 0 else "Tomorrow not available\n"
available = lambda i : "\nToday available\n" if i == 0 else "Tomorrow available\n"
truth = False
i = 0
for match in matches:
if match.getText().strip().find("Not available") != 0:
message += available(i)
truth = True
else:
message += notAvailable(i)
i+=1
return [truth,message]
if __name__ == "__main__":
chrome_options = Options()
de_capabilities = webdriver.DesiredCapabilities.CHROME
driver = WebDriver("http://LocalSeleniumStandaloneServer:4444/wd/hub", desired_capabilities=de_capabilities)
print(driver.title)
phoneNumbersList = []
phonenumber = ""
phoneNumbersList.append(phonenumber)
driver.get("https://www.amazon.com/")
ready = input("Please press enter when you have navigated to the correct page")
found = False
while not found:
driver.refresh()
retVal = grabAvailability(driver)
truth = retVal[0]
message = retVal[1]
if truth:
message = message + "\nThere's one available slot!\nBrought to you by Shay Maor"
sendSMS(phoneNumbersListwDad, message)
found = True
else :
message = message + "Will try again in 7 minutes."
message = message + "\nBrought to you by Shay Maor"
sendSMS(phoneNumbersList, message)
time.sleep(420)