Skip to content

Latest commit

 

History

History
182 lines (119 loc) · 7.28 KB

readme.md

File metadata and controls

182 lines (119 loc) · 7.28 KB

Project Logo


Empowering users to access tailored book selections from the Ebooks website. This web application, developed with Python and Streamlit, streamlines the process of downloading books that match their preferences.

built-with-love powered-by-coffee cc-nc-sa

OverviewPrerequisitesArchitectureDemoSupportLicense

Overview

The primary goal of this project revolves around the retrieval of comprehensive book data from the Ebooks website.

website-snippet

The web application has been meticulously designed to cater to on-demand web scraping. In essence, it selectively extracts essential book information based on the user's specified choices regarding category, subject, and topic.

Once the user designates a category, the application promptly generates a list of associated subjects for the user to select from. Likewise, upon selecting a subject, the application dynamically populates a dropdown menu with relevant topics (if available).

webapp_image

Armed with these three choices, users can effortlessly obtain their desired information in the form of a downloadable CSV file, simply by clicking the "Get Data" button.

The project repository exhibits the following structure:

Ebooks-Extractor-App/
└─ 📁.streamlit/
    ├─ ⚙️config.toml
├─ 🐍app.py
├─ 🐍scraper_functions.py
├─ 🗒️readme.md
├─ 🗒️requirements.txt
├─ 📜.gitignore
├─ 🔑LICENSE
└─ 📁images/
   ├─ 🖼️books_image.jpg
   ├─ 🖼️ebooks_logo.png
   ├─ 🖼️process_workflow.png
   ├─ 🖼️webapp_graphic.gif
   ├─ 🖼️webapp_image.png
   ├─ 🖼️website_snippet.png

The Streamlit application is driven by two fundamental Python scripts:

  • 🐍app.py: This script capitalizes on functions from the scraper_functions.py file, enabling seamless web scraping. Moreover, it stands as the cornerstone of the Streamlit application.

  • 🐍scraper_functions.py: This file houses a collection of functions specifically designed for data extraction via web scraping techniques.

Prerequisites

To fully grasp the concepts and processes involved in this project, it is recommended to have a solid understanding of the following skills:

  • Fundamental knowledge of Python, APIs, Streamlit
  • Familiarity with the Python libraries listed in the 🗒️requirements.txt file
  • Basic familiarity with browser developer tools

Having these skills as a foundation will help to ensure a smooth and effective experience while working on this project.

The selection of applications and their installation process may differ depending on personal preferences and computer configurations.

Architecture

The architectural design of this project is transparent and can be readily comprehended with the assistance of the accompanying diagram illustrated below:

Process Architecture

The project's architectural framework encompasses the following key steps:

User Interaction

The user initiates the process by selecting their desired category from the available options. Based on the chosen category, the web application dynamically scrapes and presents a list of related subjects for the user's selection.

Upon subject selection, the web app proceeds to scrape topics associated with the selected subject (if available).

The user can then finalize their selection by choosing "Get Data"

Data Retrieval

Subsequently, the web application conducts a comprehensive scraping operation to gather book-related information. This gathered data is then structured into a CSV file format.

User Output

The user is provided with a downloadable CSV file containing the acquired book data, facilitating easy access to the information they require.

Demo

The following illustration demonstrates the process of collecting data by providing necessary inputs to the web application:

webapp-graphic

Access the web application by clicking here: Ebooks Extractor App

Support

If you have any questions, concerns, or suggestions, feel free to reach out to me through any of the following channels:

Linkedin Badge Twitter Badge Medium Badge

If you find my work valuable, you can show your appreciation by buying me a coffee

buy-me-a-coffee

License

by-nc-sa

This license allows reusers to distribute, remix, adapt, and build upon the material in any medium or format for noncommercial purposes only, and only so long as attribution is given to the creator. If you remix, adapt, or build upon the material, you must license the modified material under identical terms.


topmate-udit