Я пытаюсь очистить сайт, но страница, которую я пытался очистить, содержит перенаправление на другую страницу. Я устанавливаю параметр FOLLOWLOCATION на curl, но я прихожу на URL-адрес http: //localhost/….pageredirected.php и т. Д.
Проблема в том, что перенаправление работает, но DOMAIN не прав (потому что это моя не очищенная страница). Вот код:
<?php // create a new CURL resource $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, "http://voli.govolo.it/etape1.cfm?ref=2008052701&destination=484&Provenance=320&Date_Depart=11/9/2010&Date_Retour=18/9/2010&AllerRetour=1&Adultes=1&ENFANTS=0&BEBES=0&dated=110910&dater=180910&TypeClasse=0&langue=it"); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // grab URL and pass it to the browser $esito = curl_exec($ch); print_r(curl_getinfo($ch)); echo $esito; // close CURL resource, and free up system resources curl_close($ch); ?>
страница будет перенаправлена etape1.cfm TO etape2.cfm, но я получаю ошибку 404, потому что вижу http: //localhost/scraping/etape2.cfm ? … и не http://voli.govolo.it/etape2.cfm ? …
Почему FOLLOWLOCATION не следует за DOMAIN ( http://voli.govolo.it )?
Проблема не завитка. Часть того, что посылает первый URL-адрес, такова:
<script language="JavaScript" type="text/javascript"> <!-- function historyDeleteAndRedirect() { window.location.replace('etape2.cfm?ref=2008052701&destination=484&Provenance=320&Date_Depart=11/9/2010&Date_Retour=18/9/2010&AllerRetour=1&Adultes=1&ENFANTS=0&BEBES=0&dated=110910&dater=180910&TypeClasse=0&langue=it'); //alert(window.location.href); //alert(document.referrer); } //--> </script>
Поскольку вы не получаете доступ к сайту в обычном режиме, этот javascript ломается, так как вы действительно нажимаете «localhost», а не «WhateverSiteThisIs.com». Помните, что завиток работает на сервере. Таким образом, вы .replace()
"http://localhost/etape1.cfm?.....
Так как .replace()
не является абсолютным URL-адресом, ваш браузер делает правильную вещь и повторно использует localhost
.