From 6c33e418e2b642a00bd502b3efb98602f283074a Mon Sep 17 00:00:00 2001 From: agatha Date: Sat, 2 Dec 2023 14:49:46 -0500 Subject: [PATCH] Get package objects from HTML --- main.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 2 files changed, 45 insertions(+) create mode 100644 main.py create mode 100644 requirements.txt diff --git a/main.py b/main.py new file mode 100644 index 0000000..384932f --- /dev/null +++ b/main.py @@ -0,0 +1,44 @@ +"""buyvm stock checker""" +from bs4 import BeautifulSoup + + +def get_packages(html): + soup = BeautifulSoup(html, 'html.parser') + packages = [] + + package_elements = soup.find_all('div', class_='package') + for package_element in package_elements: + package = {} + + package_name = package_element.find('h3', class_='package-name').text.strip() + package['name'] = package_name + + package_quantity = package_element.find('div', class_='package-qty').text.strip() + package['qty'] = package_quantity + + order_button = package_element.find('a', class_='btn-primary') + if order_button: + order_url = order_button['href'] + package['url'] = order_url + else: + package['url'] = '' + + packages.append(package) + + return packages + + +def main(): + with open('tests/data/stock.html', 'r', encoding='utf-8') as file: + html = file.read() + + packages = get_packages(html) + for package in packages: + print('Package Name:', package['name']) + print('Package Quantity:', package['qty']) + print('Order URL:', package['url']) + print('---------------------------') + + +if __name__ == '__main__': + main() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..c1f5f71 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +beautifulsoup4