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.
Airbnb is a podium that provides people the chance to rent their homes utilizing just an internet linking. Airbnb was started in 2008 by Brian Nathan Blecharczyk, Joe Gebbia, and Chesky and they have earned a massive profit in a pandemic.
Anyone can search the list on the podium just by opening Airbnb and exploring for a different place, but there is no other way you can easily search meaningful data with the following details.
If you want to scrape all the required data, then below are the following:
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.
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.
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.
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.
We have successfully made basic web extractor data in minutes. If you’re determined, you can utilize the information, you collect to imagine the concentration and distribution of the properties on a map. Airbnb offers you all the required data on the listing page.
Comments
Post a Comment