[php] [curl] Проблема с Curl - сохранение www - PullRequest
0 голосов
/ 25 января 2019

У меня есть этот код и его работа, но .. Он сохраняет этот wwww "на быстрый" и в html-файле, который я вижу в средней части www.больше времени на этом www и когда все загружено на www и сохранено в файл?

<pre><?php

$file = fopen("brawl2.html", "w");
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "https://brawlstats.com/club/8LG08L");
curl_setopt($c, CURLOPT_FILE, $file);
curl_exec($c);
curl_close($c);
fclose($file);

?>

Спасибо за помощь!

1 Ответ

0 голосов
/ 25 января 2019

Curl не эмулирует браузер, он просто загружает один файл с сервера, поэтому он никогда не загрузит эти изображения.

В HTTP пользовательский агент (обычно браузер, но в этом случае библиотека curl) отправляет запрос на определенный ресурс (URL); затем сервер делает все, что ему нужно, и затем возвращает ответ; и тогда все готово.

В вашем случае сервер отвечает HTML-страницей, содержащей немного JavaScript. При загрузке браузером этот JavaScript будет запускаться и загружать изображения; но curl не является браузером, поэтому не будет запускать этот JavaScript.

Существуют библиотеки, которые эмулируют браузер, который сможет запустить это; они называются «безголовыми браузерами», и быстрый поиск обнаружил эту попытку по полному списку .

Стоит также помнить, что даже после запуска JavaScript изображения, вероятно, являются не частью HTML, а ссылками на другие файлы. Если вы не сохраните их, ваш сохраненный HTML-файл не будет отображать никаких изображений, если вы отключите интернет, поэтому вам также может понадобиться подумать о том, как архивировать все ресурсы, необходимые для отображения страницы , а не только сама страница.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...