How Can You Effortlessly Scrape Airbnb Listing Data?

--

Have you ever been in the condition of testing to find out the preferred place to expend the holiday? Or possibly you need to discover how your list compares with your neighbors’. Why you don’t want to utilize the power of web extracting to do this?

A web extractor is software that assists you to automate the boring process of gathering valuable information from third-party websites. Many of the online services providers contact an API to effortlessly read details from the website. Inappropriately, Airbnb is not the one. This is where a web extractor has a role to play.

Extracting Data with a Web Scraping API

If you want to scrape all the required data, then below are the following:

Inspecting a Source Code

Check out the basic fundamentals you are attracted to in extracting Airbnb’s website. By clicking right where on the page and you can select the “Inspect” decision you will able to see on the Developer Tools.

We can scrape different data like price, type, rating, and image of the places.

Initially, we will find the normal element in the DOM. It looks like _gigle7 is what are we searching for.

Choosing a Web Scraper

To obtain the finest results, we commend utilizing our service, Web Scraping API. You can try for free by retrieving this link. You need to generate an account and return to this particular page once you complete it.

After logging in, you need to go to the dashboard page. There, you can search for your reserved API access key, which will help you to utilize and create the needs, the API where you test the documentation and the product.

Setting up the project

You can run the following commands for the project:

To make the requirements, we are successful to install the element, and for HTML analyzing needs, we will utilize the jsdom package.

Make the latest file named “index.js” and open it up.

Let us clear the limitations and make the request and analyze the HTML

const {JSDOM} = require("jsdom") const got = require("got") (async () => { const params = { api_key: "YOUR_API_KEY", url: "https://www.airbnb.com/s/Berlin/homes?tab_id=home_tab&refinement_paths%5B%5D=%2Fhomes&flexible_trip_dates%5B%5D=april&flexible_trip_dates%5B%5D=may&flexible_trip_lengths%5B%5D=weekend_trip&date_picker_type=calendar&source=structured_search_input_header&search_type=filter_change&place_id=ChIJAVkDPzdOqEcRcDteW0YgIQQ&checkin=2021-04-01&checkout=2021-04-08" } const response = await got('https://api.webscrapingapi.com/v1', {searchParams: params}) const {document} = new JSDOM(response.body).window const places = document.querySelectorAll('._gig1e7') })()

As we have formerly specified, all the significant data can be originating under the _gigle7 section, so will collect all the fundamentals that are allocated to the _gigle7 class. You can be able to screen by adding a console.log.

Getting the data in JSON format

We will dig deeper to get the particular elements comprising the image type, rating, and price information.

Copy the line which is previously presented, copy the following information:

const results = [] places.forEach(place => { if (place) { const price = place.querySelector('._ls0e43') if (price) place.price = price.querySelector('._krjbj').innerHTML const image = place.querySelector('._91slf2a') if (image) place.image = image.src const type = place.querySelector('._b14dlit') if (type) place.type = type.innerHTML const rating = place.querySelector('._10fy1f8') if (rating) place.rating = rating.innerHTML results.push(place) } }) console.log(results)

Scraping Airbnb data utilizing Web Scraping API it’s very easy.

  • Create a request to Web Scraping API utilizing the required parameters: the URL and API key we need to extract data from.
  • Load the DOM utilizing JSDOM.
  • Choose all the lists by searching the particular class.
  • For every list, catch the image, price tag, rating, and listing type.
  • Add each place to the latest array results.
  • Log the latest created outcomes array to the screen.
[ HTMLDivElement { price: '$47 per night, originally $67', image: 'https://a0.muscache.com/im/pictures/miso/Hosting-46812239/original/c56d6bb5-3c2f-4374-ac01-ca84a50d31cc.jpeg?im_w=720', type: 'Room in serviced apartment in Friedrichshain', rating: '4.73' }, HTMLDivElement { price: '$82 per night, originally $109', image: 'https://a0.muscache.com/im/pictures/miso/Hosting-45475252/original/f6bd7cc6-f72a-43ef-943e-deba27f8253d.jpeg?im_w=720', type: 'Entire serviced apartment in Mitte', rating: '4.80' }, HTMLDivElement { price: '$97 per night, originally $113', image: 'https://a0.muscache.com/im/pictures/92966859/7deb381e_original.jpg?im_w=720', type: 'Entire apartment in Mitte', rating: '4.92' }, HTMLDivElement { price: '$99 per night, originally $131', image: 'https://a0.muscache.com/im/pictures/f1b953ca-5e8a-4fcd-a224-231e6a92e643.jpg?im_w=720', type: 'Entire apartment in Prenzlauer Berg', rating: '4.90' }, HTMLDivElement { price: '$56 per night, originally $61', image: 'https://a0.muscache.com/im/pictures/bb0813a6-e9fe-4f0a-81a8-161440085317.jpg?im_w=720', type: 'Entire apartment in Tiergarten', rating: '4.67' }, ... ]

One of the known limits that we are presently facing is that we extract the data from one page of our exploration. This can be static by utilizing some kind of a headless browser, browser automation, and like 3i Data Scraping Services. This will assist you to do the maximum of the things we can physically do in a web browser, like implementing a clicking a button or form.

Originally published at https://www.3idatascraping.com.

--

--

Data Scraping Services and Data Extraction

3i Data Scraping is an Experienced Web Scraping Service Provider in the USA. We offering a Complete Range of Data Extraction from Websites and Online Outsource.