How to Scrape Expedia

Expedia.com is the number one flight, travel and cruise website in the world. It is owned and operated by the Expedia Group, which also operates the websites: Vrbo, Hotels.com, Hotwire.com, Orbitz, Travelocity, trivago, CheapTickets, CarRentals.com and many more. Expedia Inc. generates over 8 billion in revenue and spends over 4 billion in sales and marketing. Expedia.com allows you to easily look up flights, vacation packages and cruises and can be easily filtered by price, dates and ratings. They even have concerts, events and tours available to be searched on their website. There is a lot of scrapable data on the Expedia website, such as prices, resorts, ratings, locations and much more. In this blog post, we will show you how to scrape Expedia, step-by-step!

To start your Expedia scraping project, you will need to download ParseHub, our free web scraper. Once you open the application, you will need to register or log in to your account to begin.

Let’s begin scraping Expedia.com!

Scraping Vacation Packages

  1. Firstly, make sure you’re logged into the ParseHub application on your computer.
  2. Click the blue “New Project” button on the top left of the screen.
  3. You will be asked to enter a URL to scrape, we will use this URL to scrape vacations to South American countries: https://www.expedia.ca/all-inclusive-vacation/search?origin=YYZ&departure=01%2F09%2F2022&adultCount=2&starRating=0-&price=0-&start=1&roomCount=1&destination=1%2C2%2C7%2C8%2C9%2C10%2C11%2C12%2C13%2C14%2C16%2C17%2C18%2C21%2C24%2C25%2C27%2C28%2C29%2C30%2C33%2C34%2C35%2C36%2C38%2C39%2C40%2C44%2C46%2C57%2C59%2C60%2C62%2C64%2C69%2C70%2C73%2C76%2C77%2C78%2C83%2C86%2C156%2C188%2C226%2C237%2C251%2C1843%2C2521%2C2974%2C4244%2C346792%2C568546%2C569962%2C1341400%2C1341882%2C1899141%2C2889252%2C3049109%2C3049111&duration=5-10&sort=PRICE_ASC&d1=2022-08-03
  4. When the page loads on the right, click the first resort’s name, and it should turn green.
  5. The rest of the resorts should now be yellow, click the second one, and all the resorts should now be extracted.
  6. Rename this selection to “resort” on the left-hand side.
  7. You have now extracted the first 10 resorts and their respective URLs on the first page!

Additional Vacation Data

Each resort has additional information such as their respective locations, prices and ratings. In order to add the respective data to the resort’s column, we need to use the Relative Select tool.

  1. Begin by clicking the PLUS(+) button next to the resort selection.
  2. Click the first resort and an arrow will follow your cursor.
  3. Click the price next to the first resort’s name, and it should connect the arrow.
  4. You will now see all 10 prices added to the respective resorts.
  5. Rename this selection on the left to “price”.
  6. Redo steps one to five for the location of the vacation, and rename the selection to “location”.

Extracting Vacation Ratings

Extracting ratings is a bit tricker but we will use the relative select command again. There are some additional steps compared to the price and location selections:

  1. Start with the same relative select command on your resort selection
  2. Click the first resort and point the arrow to the star ratings on the right.
  3. Rename this extraction to “rating” on the left.
  4. All ratings should be extracted but will have a blank column on the live preview below.
  5. Expand the rating by clicking the drop-down button and click the Extract selection.
  6. In the Extract drop down, choose “title Attribute”
  7. Finally, you will see the proper rating out of 5 shown in the data preview!

Scraping Multiple Pages (Pagination)

The process of scraping or parsing through multiple pages is called pagination. To scrape multiple pages, follow these steps:

  1. Firstly, click the PLUS(+) button next to the page element on the top left of the screen.
  2. Choose the Select command and scroll down to Expedia’s page navigation.
  3. Click the Next button, and rename this selection to “pagination”
  4. Expand the selection and remove the extraction as it adds the “Next” text to your data, which we do not need.
  5. Click the PLUS(+) button next to your pagination selection and choose Click.
  6. You will be asked if this is a next page button, choose Yes as this is a next page button.
  7. Enter the additional amount of pages you want to scrape, we will choose 2, which means ParseHub will scrape 3 pages in total. If you enter 0, it will scrape every single page available!
  8. Note that you may need IP Rotation or custom residential/mobile proxies to scrape massive amounts of data.

Start Your Expedia Scrape

Now that your selections, relative selects, pagination and IP rotation are set up, you are ready to begin scraping! To begin your scrape, click the green “Get Data” button on the left pane. You can choose to test, run or schedule your scrape. Scheduling your scrape could be useful if you need up-to-date vacation or flight prices on a regular basis. For our example, we will run the scrape once by clicking Run.

If you followed our tutorial correctly, your scrape results should look like this:

If you have any questions about web scraping, need help with extracting data from travel websites; or from any website, send us a live chat message on our website. Our expert scrapers will help you out!

P.S. We also have a blog post on scraping TripAdvisor.
Happy Scraping! 📊