Travel site parsing in real-time

How to collect data in real time. Article about data collection by the example of – brief instructions for beginners.

PHP parser step by step


The cURL library helped us to make a correct request and process the data. This library is a more advanced alternative to PHP function - file_get_contents. In contrast, cURL allows us to work with cookies, with headers, allows us to send forms and navigate through redirects.

A peculiar feature of website parsing is that it works with the source HTML code of the page, but not with data (text, images, etc.), which are visible to the user on the site.


Accordingly, most of our work is focused on the right selection of the necessary elements of the "attacked" site. So we smoothly move on to prototyping - the process of applying various concepts, architectural, and/or technological solutions in the development of the parser.


When the previous stage is completed, it's time to test the parser! For this purpose, we apply the method of case testing - a set of steps, specific conditions, and parameters necessary to test our parser efficiency. In the same way, we check the correctness of the received data and parser code load on the website under "attack" and our resource.

Parsing the site

After the implementation of the technical part in relation to the parser, then all we need - to get data from the site

We launch the parser and wait until the tool "collects" all the data we need. In this case - rooms and their availability in a certain period, as well as all price options for this period. After that, we export the obtained data to the database of our travel service website and enjoy the result.

Look at the screenshots and compare - the prices on our client's site coincide with And it can't be any other way, because during the search when the script on "our" site parses necessary hotels on "Booking" and it gets from there all prices for available rooms!

What is the result?

Parser in a few minutes will bypass thousands of pages of the "attacked" resource. It will carefully and accurately select the necessary and discard unnecessary data, packing efficiently the final data in the required form. This data then can be disposed of in any way you like. For example, as it was in our case by exporting hotel rooms information from all over the world into a single database.