2017-10-10 3 views
1

J'essaie de m'inscrire sur la page booking.com de la part de l'hôtel pour rechercher l'hôtel par email à regex. Le problème est le suivant:PHP file_get_contents booking.com Site

J'appelle file_get_contents avec des paramètres comme checkin et checkout (file_get_contents("/hotel/at/myhotel.html?checkin=2017-10-12&checkout=2017-10-13")) pour que les prix soient montrés au visiteur. Si je regarde le code source dans le navigateur, je vois l'entrée:

b_this_url : '/hotel/at/myhotel.html?label=gen173nr-1FCAsoDkIcbmV1ZS1wb3N0LWhvbHpnYXUtaW0tbGVjaHRhbEgHYgVub3JlZmgOiAEBmAEHuAEHyAEM2AEB6AEB-AEDkgIBeagCAw;sid=58ccf750fc4acb908e20f0f28544c903;checkin=2017-10-12;checkout=2017-10-13;dist=0;sb_price_type=total;type=total&', 

Si je fais écho à la chaîne de file_get_contents la chaîne ressemble:

b_this_url : '/hotel/at/myhotel.html', 

Donc tous les paramètres que je Transmis à l'URL avec file_get_contents sont partis et donc je ne pouvais pas trouver de prix avec mon regex sur la page ...

Quelqu'un at-il une solution à ce problème?

+0

J'ai essayé de comprendre votre question, mais a échoué. Pourriez-vous SVP expliquer plus clairement –

+1

Jetez un oeil sur le code source de [link] (https://www.booking.com/hotel/at/hilton-innsbruck.de.html?checkin=2017-10-10;checkout = 2017-10-11) et jetez un oeil à b_this_url: - vous y verrez l'URL avec les paramètres. Prenez la même url avec file_get_contens et faites écho à la réponse - vous verrez que b_this_url ne contient que l'URL de base de l'hôtel et tous les paramètres sont partis ... - J'espère que j'ai mieux décrit ... – heppi75

Répondre

-1

La page Web n'est pas complètement générée côté serveur, mais elle dépend fortement de JavaScript après le chargement de la partie HTML. Si vous cherchez à rendre la page telle qu'elle apparaît dans le navigateur, je pense que vous devriez utiliser php curl au lieu de file_get_contents() pour ce genre de chose mise au rebut web. J'ai généré un code automatique pour vous à partir de Postman (une application de bureau google chrome/bureau autonome) pour votre URL donnée. La réponse contient l'URL complète avec les paramètres. Voir l'image et j'ai posté le code pour vous aussi.

enter image description here

<?php 

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.booking.com/hotel/at/hilton-innsbruck.de.html?checkin=2017-10-10%3Bcheckout%3D2017-10-11", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "GET", 
    CURLOPT_HTTPHEADER => array(
    "cache-control: no-cache", 
    "postman-token: 581a75a7-6600-6ed6-75fd-5fb09c25d927" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
}