This tutorial shows how to scrape Booking.com Italy hotels into CSV with the Booking.com Hotel Scraper for Italy template for UScraper. You will import the workflow, add hotel or result URLs, set the export path, validate one row, and fix blank-field issues before scaling.
Before you start
Prerequisites, scope, and Booking.com policy checks
You need UScraper installed as a local desktop app, the template JSON, a writable CSV folder, and a short list of Booking.com Italy hotel URLs you are allowed to process. Start with the bundled Vesuvio examples or three URLs from one destination, date range, guest count, language, and currency.
This guide covers visible hotel and result pages in a supervised browser session. It does not cover account dashboards, payment flows, login-only data, CAPTCHA bypassing, or high-volume collection. Review the current Booking.com Terms and Conditions, and compare commercial use cases against the official Booking.com Demand API docs.
Compliance first: collect only data you have permission to use, keep batches modest, do not defeat access controls, and document the source URL and run date beside every export.
Workflow anatomy
What the Booking.com hotel scraper template does
The JSON export is the authoritative workflow definition. Its block sequence is intentionally small: Navigate -> Wait for Page Load -> Wait for Element -> Sleep -> Structured Export -> Loop Continue. Navigate owns the multi-URL list, the waits let hotel modules render, Structured Export writes one CSV row, and Loop Continue advances to the next URL.
The template writes crawler-lista-hotel-booking.csv. It extracts search context from URL parameters, then combines metadata, headings, visible text, and JavaScript fallbacks for fields that often move between Booking.com modules.
| Workflow part | What to check | Why it matters |
|---|---|---|
| Navigate | Booking.com hotel or result URLs, including date and guest parameters | The exported price and room data only make sense with the search context that produced them. |
| Wait for Element | h1, h2, or Open Graph title metadata | Confirms the page reached a readable hotel state before extraction. |
| Structured Export | Output path, append mode, headers, and 13 columns | Keeps every approved URL in one reviewable CSV. |
| Loop Continue | Final block after export | Prevents the workflow from stopping after the first hotel. |
Runbook
How to scrape Booking.com Italy hotels to CSV
Import the JSON
Download the workflow from the related template page and import it into UScraper. Keep the original block order for the first validation run.
Replace the sample URLs
In Navigate, add Booking.com Italy hotel or result URLs you are allowed to process. Preserve checkin, checkout, guests, rooms, destination, and selected room parameters.
Confirm page readiness
Keep the 45-second page-load wait, the heading or metadata check, and the short sleep before export. Handle cookies, consent, redirects, or verification manually before trusting the row.
Set the CSV destination
In Structured Export, confirm the file name, save folder, headers, and append mode. Use a project-specific folder before client or destination batches.
Run one URL, then batch
Run one hotel, compare the CSV against the browser, fix missing fields, then run the remaining URLs through Loop Continue.
After the first run, sort by pagina_url. One supplied URL should produce one row; repeats usually mean a duplicated URL or a resumed loop.
Output
CSV fields from the Booking.com data extractor
No CSV sample was bundled, so the export shape comes from the JSON definition. The values mirror the configured Vesuvio-area Italy URLs and actual column names. Prices, room text, review labels, and sustainability fields can change by date, occupancy, language, currency, cookies, and availability.
| Column group | Fields | How to validate |
|---|---|---|
| Search context | parola_chiave, date_del_soggiorno, ospiti | Confirm the URL still contains the intended destination, dates, adults, children, and rooms. |
| Hotel identity | nome, posizione, pagina_url, distanza | Compare the hotel name, city, source URL, and landmark distance against the open page. |
| Trust signals | punteggio, recensione, numero_recensioni | Check localized score text such as Italian or English labels before filtering rows. |
| Offer detail | prezzo, camera_consigliata, travel_sustainable | Treat blanks as stateful: room inventory, price visibility, and sustainability badges may not render every time. |
crawler-lista-hotel-booking.csvColumn
parola_chiave
Keyword or destination context inferred from URL parameters, such as Vesuvio.
Column
date_del_soggiorno
Check-in and checkout dates parsed from the Booking.com URL.
Column
ospiti
Adults, children, and room count from URL parameters.
Column
nome
Hotel or property name from headings, metadata, or the page title.
Column
posizione
City or location text parsed from page metadata or visible links.
Column
pagina_url
The current Booking.com page URL used for audit and reruns.
Column
distanza
Distance from the searched landmark when visible or mapped from the sample URL.
Column
punteggio
Numeric review score such as 8,9 or 9,4.
Column
recensione
Localized review label such as Ottimo, Favoloso, Wonderful, or Excellent.
Column
numero_recensioni
Review count parsed from visible review text.
Column
prezzo
Visible price or fallback price from Booking.com pricing URL parameters.
Column
camera_consigliata
Recommended room, room size, beds, occupancy, and availability text when present.
Column
travel_sustainable
Sustainability label or level when Booking.com exposes it.
Validation
Validate the export before using the data
Open the browser page and CSV side by side. Check one row from the beginning, middle, and end. Verify hotel name, location, stay dates, guest count, visible price, room block, score, review count, and source URL. If the first row is wrong, do not scale.
| Symptom | Likely cause | Fix |
|---|---|---|
Empty nome | Booking.com never reached a readable heading or metadata state | Handle prompts, extend waits, and rerun the single URL. |
Blank prezzo | No visible price for that stay, hidden member pricing, or delayed pricing module | Preserve date and guest parameters, then inspect the page manually. |
Missing camera_consigliata | Room table changed, collapsed, or did not render for the selected occupancy | Add a scroll or update the room selector against the live page. |
| Review fields look wrong | Locale-specific labels changed | Adjust the JavaScript pattern for the active page language. |
Alternatives
Booking.com scraper vs Demand API vs hosted tools
UScraper is strongest when you need a supervised Booking.com scraper tutorial path: import a no-code workflow, keep the run local, inspect each page, and export a reviewable CSV. The official Demand API is better for approved partner access and booking-related flows. Hosted scrapers can help with cloud scheduling and infrastructure, but review custody, pricing, and browser QA trade-offs first.
| Option | Good fit | Trade-off |
|---|---|---|
| UScraper local desktop app | Controlled hotel URL batches, visible QA, CSV export, no-code editing | Best for supervised workflows, not CAPTCHA bypass or unattended high-volume crawling. |
| Booking.com Demand API | Approved partners who need official inventory and booking-related flows | Requires eligibility, credentials, integration work, and API constraints. |
| Hosted scraping tools | Scheduling, cloud runs, infrastructure, and API-style delivery | Data passes through a third party and pricing may depend on requests, pages, rows, or compute. |
FAQ
Booking.com hotel scraper FAQ
Booking.com hotel pages may be publicly visible, but automated collection can still be restricted by terms, robots directives, copyright, database rights, privacy law, and local rules. Review the current terms, do not bypass CAPTCHA or access controls, and get legal review before commercial use.
Next step
Download the Booking.com Italy hotel scraper template
When you are ready to run the tutorial, download the JSON from Booking.com Hotel Scraper for Italy CSV Export and keep this article open while validating the first row. For related workflows, browse the UScraper template library or read more CSV export tutorials on the UScraper blog.

