Appliance Finder, helps you save precious time checking availability for appliances delivery.
You only need to select the appliance that you are interested and zip code and we compile a list of available appliances.
View Demo
·
Report Bug
·
Request Feature
Table of Contents
There are many different ways to find and organize data online; however, I didn't find one that suits my needs, so I decided to create this project; it was inspired by one of the significant issues that I was facing finding available products and saving time for myself and my customers.
- HD-Appliance-Finder reduces drastically the search time for an product
- The creation of appliances packages and bundles that have an average of and hour can be cut in less than half
Windows Instructions:
- Python 3.9
- PIP
Please make sure on windows run a cmd as administrator
- Clone the repo
git clone https://github.com/RicardoSu/HD-Appliance-Finder.git cd HD-Appliance-Finder
- Install virtualenv and create a env
pip install virtualenv virtualenv env .\env\Scripts\activate
- Pip install requirements.txt in the env
pip install -r requirements.txt
- Run the webserver
.\env\Scripts\activate python app.py
- To run in debug mode change file app.py
if __name__ == '__main__':
app.run(debug=True)
The base of this project is the usage of the python code to scrape the home depot website to store tha data and diplay an organized list with only available items. First we need to understand how the home depot website is organized.
The home depot website categorize items with a N-code this means that each category have an specific N-code for example:
https://www.homedepot.com/b/N-5yc1vZc3q0
"5yc1vZc3q0" will display an array of Side By Side Refrigerators With this information in mind the file /pyton_code/appliances.json can be changed to gather specified items
"washing_machine": {
"front_load_washers": "5yc1vZc3pj",
"top_load_washers_agitator": "5yc1vZc3ocZ1z17rwr",
"top_load_washers_impeller": "5yc1vZc3ocZ1z17ryq"
}
- The first code Home depot SKU Parser or hd_sku_parser_1.py:
This code uses the selenium web driver to scrape home depot SKUS SKUS or Stock keeping unit are numbers given to merchandise to easily track and categorize products, this code reads a JSON file and scrapes the home depot website with the provided N-value that Home Depot uses to order similar products, and return organized JSON files with the new data.
- Home depot DATA Parser OR hd_data_parser_2.py: This code uses the data stored data from Home depot SKU Parser and creates JSON files with the products specifications gathered from a hidden home depot API used for custumer reviews, and stores in organized json files.
This usually bans you from home depot
- Home depot AVAILABILITY Parser OR hd_availability_parser_3_async.py: This code uses the data stored data from Home depot DATA Parser to ckeck if the products are available on given zip code, using an Synchronous request it returns a dictionary with earliestAvailabilityDate and if products are availabe or backordered, out of stock products are not diplayed
Code is run during flask application
The use of a VPN is highly recommended
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Ricardo Suarez - ricardolimasuarez@gmail.com
Project Link: HD-Appliance-Finder