AI Google Hotel Scraper
Pricing
$3.00 / 1,000 results
AI Google Hotel Scraper
Advanced Google Hotels Scraper with AI-Powered Data Extraction Extract comprehensive hotel data from Google Hotels using our AI-enhanced scraper. Perfect for travel agencies, price comparison platforms, market researchers, and booking services.
Pricing
$3.00 / 1,000 results
Rating
0.0
(0)
Developer

Khalid Ali Khan
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Google Hotel Scraper - Apify Actor
An advanced Python scraper for Google Hotels designed to run on Apify platform. This scraper extracts comprehensive hotel data including ratings, prices, contact details, amenities, reviews, and more.
Features
🔍 Search & Filtering
- Location-based search: Search hotels by location, city, or hotel name
- Date range filtering: Filter by check-in and check-out dates
- Guest & room configuration: Specify number of guests and rooms
- Rating filtering: Filter hotels by minimum and maximum ratings (0-5 stars)
- Price filtering: Set minimum and maximum price ranges
- Currency support: Support for multiple currencies (USD, EUR, GBP, etc.)
- Sorting options: Sort by relevance, price (low to high), price (high to low), or rating
📊 Data Extraction
- Basic information: Hotel name, address, rating, review count
- Pricing: Current price, price per night, currency
- Contact details: Website, phone number, email (when available)
- Amenities: List of hotel amenities and facilities
- Images: Hotel images (optional)
- Reviews: Customer reviews (optional)
- Description: Hotel description and details
📈 Price Tracking
- Price history: Track price changes over time
- Date-specific tracking: Track prices for specific check-in/check-out dates
- Historical data: Store price history for analysis
⚙️ Advanced Options
- Headless mode: Run browser in headless mode
- Custom timeouts: Configure wait times for page elements
- Result limits: Control maximum number of results
- Proxy support: Built-in proxy configuration support
Getting Started
Using on Apify Store
This actor is available on the Apify Store. Simply:
- Find the Actor: Search for "Google Hotel Scraper" on the Apify Store
- Run the Actor: Click "Try for free" or "Run" button
- Configure Input: Enter your search parameters in the input form
- Get Results: Download your results from the Dataset (JSON) or Key-Value Store (CSV)
No installation or setup required - just run and pay per usage!
For Developers
If you want to run this locally for development or testing:
- Install dependencies:
pip install -r requirements.txtplaywright install chromium
- Set up local storage:
export APIFY_LOCAL_STORAGE_DIR=./apify_storagemkdir -p apify_storage/key_value_stores/default
- Create input file:
$cp example_input.json apify_storage/key_value_stores/default/INPUT.json
- Run locally:
$python src/main.py
Input Schema
The scraper accepts the following input parameters:
Required
- searchQuery (string): Hotel name, location, or search term (e.g., "hotels in Paris", "Marriott New York")
Optional
Search Parameters
- location (string): Specific location or city name
- checkInDate (string): Check-in date in YYYY-MM-DD format
- checkOutDate (string): Check-out date in YYYY-MM-DD format
- guests (integer): Number of guests (default: 2, min: 1, max: 10)
- rooms (integer): Number of rooms (default: 1, min: 1, max: 10)
Filtering
- minRating (number): Minimum hotel rating 0-5 (default: 0)
- maxRating (number): Maximum hotel rating 0-5 (default: 5)
- minPrice (number): Minimum price per night (default: 0)
- maxPrice (number): Maximum price per night (default: null)
- currency (string): Currency code - USD, EUR, GBP, etc. (default: "USD")
- sortBy (string): Sort results by - "relevance", "price_low", "price_high", "rating" (default: "relevance")
Extraction Options
- extractContactDetails (boolean): Extract email, website, and phone number (default: true)
- extractReviews (boolean): Extract hotel reviews (default: false)
- extractAmenities (boolean): Extract hotel amenities (default: true)
- extractImages (boolean): Extract hotel images (default: false)
Price Tracking
- trackPrices (boolean): Track price changes over time (default: false)
- priceTrackingDays (integer): Number of days to track prices (default: 7, min: 1, max: 30)
Advanced
- maxResults (integer): Maximum number of hotels to scrape (default: 50, min: 1, max: 500)
- headless (boolean): Run browser in headless mode (default: true)
- waitForSelectorTimeout (integer): Timeout for waiting for selectors in milliseconds (default: 30000, min: 1000, max: 120000)
- proxyConfiguration (object): Proxy configuration for the scraper (default: {})
Output Format
The scraper provides data in two formats:
1. JSON Dataset (Default)
Results are pushed to the Apify dataset as JSON objects.
2. CSV Export
Results are also saved as hotels.csv in the Key-Value Store for easy analysis in Excel or other tools.
The scraper outputs an array of hotel objects with the following structure:
{"scrapedAt": "2024-01-15T10:30:00","url": "https://www.google.com/travel/hotels/...","name": "Hotel Name","rating": 4.5,"reviewCount": 1234,"price": 150,"pricePerNight": 150,"currency": "USD","address": "123 Main St, City, Country","location": {},"images": ["https://..."],"amenities": ["Wi-Fi", "Pool", "Parking"],"contactDetails": {"website": "https://hotelwebsite.com","phone": "+1-234-567-8900","email": "info@hotel.com"},"reviews": [{"text": "Great hotel!","extractedAt": "2024-01-15T10:30:00"}],"description": "Hotel description...","checkInDate": "2024-02-01","checkOutDate": "2024-02-05","guests": 2,"rooms": 1,"priceHistory": [{"price": 150,"date": "2024-01-15T10:30:00","checkInDate": "2024-02-01","checkOutDate": "2024-02-05"}]}
CSV Output
The CSV file includes the following columns:
- name, url, rating, reviewCount, price, pricePerNight, currency
- address, checkInDate, checkOutDate, guests, rooms
- website, phone, email (from contactDetails)
- amenities (comma-separated), images (comma-separated), description
- scrapedAt
Access the CSV file from the Key-Value Store in your Apify run results.
Usage Examples
Basic Search
{"searchQuery": "hotels in New York"}
Search with Dates and Filters
{"searchQuery": "hotels in Paris","checkInDate": "2024-06-01","checkOutDate": "2024-06-05","guests": 2,"rooms": 1,"minRating": 4.0,"maxPrice": 200,"currency": "EUR"}
Advanced Search with All Features
{"searchQuery": "Marriott hotels","location": "London","checkInDate": "2024-07-01","checkOutDate": "2024-07-07","guests": 4,"rooms": 2,"minRating": 4.5,"maxRating": 5.0,"minPrice": 100,"maxPrice": 500,"currency": "GBP","sortBy": "rating","maxResults": 100,"extractContactDetails": true,"extractReviews": true,"extractAmenities": true,"extractImages": true,"trackPrices": true,"priceTrackingDays": 14}
Running on Apify
Via Apify Store (Recommended)
- Go to the Apify Store and search for "Google Hotel Scraper"
- Click on the actor to view details
- Click "Try for free" or "Run" button
- Enter your input parameters
- Click "Start" to run
- Download results from Dataset (JSON) or Key-Value Store (CSV)
Via Apify API
You can also run the actor programmatically using the Apify API:
const apifyClient = require('apify-client');const client = new apifyClient.ApifyClient({token: 'YOUR_API_TOKEN',});const run = await client.actor('YOUR_ACTOR_ID').call({searchQuery: 'hotels in New York',maxResults: 50,extractContactDetails: true});// Get resultsconst { items } = await client.dataset(run.defaultDatasetId).listItems();
Environment Variables
No special environment variables are required. The scraper uses Apify's built-in Actor SDK for data storage and logging.
Troubleshooting
Common Issues
-
No results found:
- Check if the search query is valid
- Verify that hotels exist for the specified location
- Try adjusting filters (ratings, prices)
-
Timeout errors:
- Increase
waitForSelectorTimeoutvalue - Check internet connection
- Verify Google Hotels is accessible
- Increase
-
Missing data:
- Some hotels may not have all information available
- Try enabling
extractContactDetailsandextractReviewsfor more data - Google Hotels structure may change - selectors may need updates
-
Rate limiting:
- The scraper includes built-in rate limiting
- If issues persist, add delays between requests
- Consider using proxies
Project Structure
google-hotel-scraper/├── src/│ └── main.py # Main scraper code├── .actor/│ ├── actor.json # Apify actor configuration│ ├── INPUT_SCHEMA.json # Input schema definition│ └── input.json # Example input├── requirements.txt # Python dependencies├── Dockerfile # Docker configuration└── README.md # This file
License
This project is provided as-is for educational and commercial use.
Support
For issues, questions, or contributions, please open an issue on the repository.
Changelog
Version 1.0.0
- Initial release
- Basic hotel scraping functionality
- Rating and price filtering
- Contact details extraction
- Price tracking support
- Apify integration