daily log 11.09.20
less than 1 minute read
How to get your weekly list of imperfect foods
import pandas as pd
import bs4 as bs
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located
#This example requires Selenium WebDriver 3.13 or newer
# with webdriver.Firefox() as driver:
my_email = "whateveryouremail@example.com"
my_password = "yourKoolPassword"
driver = webdriver.Firefox()
wait = WebDriverWait(driver, 10)
driver.get("https://www.imperfectfoods.com/login")
first_result = wait.until(presence_of_element_located((By.ID, "login-email")))
first_result.send_keys(my_email)
second_result = wait.until(presence_of_element_located((By.ID, "login-password")))
second_result.send_keys(my_password)
second_result.submit()
try:
closeElem = wait.until(presence_of_element_located((By.XPATH, "//button[@aria-label='Close']")))
closeElem.click()
except:
print('trying')
driver.get('https://www.imperfectfoods.com/account/order-history')
orderElem = wait.until(presence_of_element_located((By.XPATH, "//button[text()='View Order']")))
orderElem.click()
html = driver.page_source
soup = bs.BeautifulSoup(html)
table = soup.find("h1", {"id": "modal-title"}).findNext('table')
df = pd.read_html(str(table))[0]
df.to_csv('imperfect_foods.csv', index=False)
def oneEditReplace(s1, s2):
print('replacing')
def oneEditInsert(s1, s2):
print('inserting into', s2)
def isOneAway(str1, str2):
if len(str1) == len(str2):
oneEditReplace(str1, str2)
elif len(str1) == len(str2) - 1:
oneEditInsert(str2, str1)
elif len(str1) == len(str2) + 1:
oneEditInsert(str1, str2)
else:
return False