INNSIGHT

Effortless Hotel Deals at Your Fingertips

Role: Lead Developer
Timeline: January 2024 – February 2024
Tools: Python, Pandas, Playwright, Tkinter

Overview

This project is personal-use terminal app that scrapes real-time hotel listings from Booking.com and presents the best deals in a simplified UI. It was built to eliminate the frustration of flipping through dozens of tabs and filters when trying to book a hotel online.

Goal

Develop a tool that could show live hotel prices, availability, and reviews all in one place without the clutter.

Demo

The Inspiration

Booking hotels online often feels like a chore. There’s too much clutter, sponsored listings, and conflicting info. I wanted to make a simple app that gets right to the point: show me the best deals.

This idea came to life after my family and I were headed on a Las Vegas trip, and wasted hours comparing hotel options manually. I realized I could automate this process and save a lot of time.

How I Built It

The app uses Playwright to programmatically search Booking.com, applying filters and extracting hotel data (name, price, rating, availability, etc.).

Pandas is used to structure and clean the data into readable tables, while Tkinter handles the GUI, allowing users to input search parameters and view results.

The scraper handles formatting, timeouts, and anti-bot logic to reliably gather fresh data each time it's run.

Key Features

  • 🔍 Live hotel search based on location, check-in/out dates, and guest count
  • 📈 Sorted results by price or rating using Pandas
  • 🪟 Minimal UI via Tkinter

What Worked & What Didn’t

  • ✅ Worked: Reliable scraping using Playwright's Chromium engine
  • ✅ Worked: Fast results even across multiple pages of listings
  • ✅ Worked: Intuitive UI for casual travelers or quick planning
  • ❌ Didn’t: Booking.com anti-bot mechanisms required tweaking headers and time delays
  • ❌ Didn’t: Tkinter’s UI flexibility was very limited

What’s Next

  • Enable hotel image previews
  • Integrate multiple booking sites (e.g., Expedia, Hotels.com)
  • Modernize UI using Electron or a web-based dashboard

Final Thoughts

This project taught me the real-world tradeoffs of scraping dynamic content and designing tools that prioritize utility. I loved the challenge of bridging automation and usability to solve a personal problem.

It’s a small app with a big impact—and it scratched a personal itch while leveling up my Python and scraping skills.