#php
#php
Вопрос:
Я пытаюсь получить HTML-содержимое страницы, но когда я это делаю, мой file_get_contents возвращает только часть JS.
когда я использую только file_get_contents, я могу видеть содержимое, но я пытаюсь также использовать loadHTML. Поэтому используйте функцию, подобную приведенной ниже.
function getContent(String $url): DOMDocument
{
$opts = array(
'http' => array(
'method'=>"GET",
'header'=>"Content-Type: text/html; charset=utf-8"
)
);
$context = stream_context_create($opts);
$result = file_get_contents($url,false,$context);
$parser = new DOMDocument();
$parser->loadHTML($result = mb_convert_encoding($result,'HTML-ENTITIES', 'ASCII, JIS, UTF-8, EUC-JP, SJIS'));
return $parser;
}
Но на этот раз я DOMDocument::loadHTML(): Tag header invalid in Entity
так пытался преодолеть эту проблему, что использовал libxml_use_internal_errors(true);
это, но тогда я просто возвращаю JS-часть страницы…
Как я могу решить проблему?
Ссылки здесь:https://lions-mansion.jp/MF161037 /
Комментарии:
1.
file_get_contents
загружает все, что обслуживал веб-сервер. Это не «проблема».2. тогда исходный код скрыт в JS или что-то в этомроде? тогда есть ли способ перехватить этот источник и преодолеть эту «ПРОБЛЕМУ» @zerkms
3. Ничего не скрыто, если вы хотите интерпретировать JS — вам нужен браузер. Возьмите безголовый Google Chrome и извлеките страницу с его помощью.
4. вы уверены, что это
file_get_contents
, а не ваш уровень кэширования или любая другая обработка, которую вы выполняете? вы пробовали использовать var_dump только для прямого результата file_get_contents? Если я попробую это, я действительно увижу множество html, divs, таблиц и т.д.5. Примечание сбоку: это
@
на вашейfile_get_contents
вещи подавляет ошибки. Вы этого не хотите — это сильно затруднит отладку, если что-то не так с URL.