У меня возникла проблема при попытке сделать Web Scraping на некоторых веб-сайтах, которые используют систему тайм-аута.
Например: я пытаюсь узнать цену на сайте отеля. Но по умолчанию у сайта есть тайм-аут - мне нужно подождать около 6 секунд, прежде чем сайт полностью загрузится. Вот скриншот: https://i.stack.imgur.com/exH8i.png
(по-испански, но там написано "в поисках наилучшего доступного тарифа").
После 6 секунд ожидания я могу получить доступ к ценам: https://i.stack.imgur.com/Myz6J.png
Итак, я хочу получить одну из этих цен, используя Web Scraping на PHP, но если я распечатаю его, я ничего не получу. Однако, если я пытаюсь напечатать тело сайта, это работает! Мое лучшее предположение: это связано с ценами, потому что они не существуют после насыщения этими 6 секундами, и я уже пытался использовать функцию сна, но она мне не помогает. Вот код, который у меня есть. Я использую "simple_html_dom" для этого:
$opts = array('http'=>array('header' => "User-Agent:MyAgent/1.0\r\n"));
$context = stream_context_create($opts);
$header = file_get_html('https://www.termesmontbrio.com/en-GB/reservas.aspx?resultado=0&motor=0&cargando=1&startdate=03/07/2018&enddate=04/07/2018&url=https%3a%2f%2fwww.centrotel.es%2ftermesmontbrio%2fsearch.asp%3fidEstablishmentSRT%3d1%26idPT%3d24%2c25%2c26%2c28%2c27%26Sidpt%3d-1%26sidptextras%3d-1%26idLanguage%3den-GB%26promo%3d%26head%3d0%26head2%3d1%26flags%3d0%26calendar%3d1%26start%3d03%2f07%2f2018%26end%3d04%2f07%2f2018',false,$context);
$price = $header;
sleep(10);
$price = $price ->find('span[class=precio]',0);
echo $price;
Сайт имеет такую структуру, как только он полностью загружен, тогда я хочу получить значение: https://i.stack.imgur.com/TYX5o.png
Извиняюсь, потому что есть некоторые тексты на испанском языке, но я публикую свой ответ в английском сообществе, чтобы я мог получить более быстрый ответ.
Заранее спасибо!