Add getmenu.py
This commit is contained in:
parent
daef6086b7
commit
e4ef7499e8
1 changed files with 57 additions and 0 deletions
57
getmenu.py
Normal file
57
getmenu.py
Normal file
|
@ -0,0 +1,57 @@
|
|||
import os
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
from datetime import datetime
|
||||
|
||||
# URL of the website with the menu links
|
||||
url = 'https://www.SCHOOL.org/departments/food-services/menus'
|
||||
|
||||
# Function to fetch the page and parse the links
|
||||
def fetch_menu(url, target_school='Elementary', target_month='April', target_type='lunch'):
|
||||
response = requests.get(url)
|
||||
soup = BeautifulSoup(response.text, 'html.parser')
|
||||
|
||||
# Find all <a> tags with the data-file-name attribute
|
||||
links = soup.find_all('a', {'data-file-name': True})
|
||||
|
||||
# Filter the links to match the target school, month, and type (lunch or breakfast)
|
||||
for link in links:
|
||||
file_name = link['data-file-name']
|
||||
if target_school.lower() in file_name.lower() and target_month.lower() in file_name.lower() and target_type.lower() in file_name.lower():
|
||||
# Construct the full URL to the PDF
|
||||
pdf_url = 'https://www.SCHOOL.org' + link['href']
|
||||
return pdf_url, file_name
|
||||
return None, None
|
||||
|
||||
# Function to download the PDF
|
||||
def download_pdf(pdf_url, file_name, save_as='menu.pdf'):
|
||||
if not pdf_url:
|
||||
print(f"No menu found for {target_school} in {target_month}")
|
||||
return
|
||||
response = requests.get(pdf_url, stream=True)
|
||||
|
||||
if response.status_code == 200:
|
||||
with open(save_as, 'wb') as f:
|
||||
for chunk in response.iter_content(chunk_size=8192):
|
||||
f.write(chunk)
|
||||
print(f"Downloaded {file_name} as {save_as}")
|
||||
else:
|
||||
print("Failed to download the file")
|
||||
|
||||
# Main function to fetch and download the menu
|
||||
def main():
|
||||
# Get the current month in a format like 'April', 'March', etc.
|
||||
current_month = datetime.now().strftime('%B') # 'April' for example
|
||||
|
||||
# Set your target school
|
||||
target_school = 'Elementary' # Change this to 'Middle' or 'High' for other menus
|
||||
|
||||
# Fetch the menu URL
|
||||
pdf_url, file_name = fetch_menu(url, target_school='Elementary', target_month=current_month, target_type='lunch')
|
||||
|
||||
|
||||
# Download the PDF
|
||||
download_pdf(pdf_url, file_name)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Add table
Reference in a new issue