H&Mから(勉強のために)ページを読み込もうとしていたところ、1つのdivのコンテンツが読み込まれていないことに気づきましたが、ブラウザからページを保存すると、divは正しく保存されます。なぜこれが起こるのか誰かが私に説明できますか?
私が探しているdiv(そして最も重要なistのコンテンツ)は次のとおりです:
body> div main> div content> div relatedInformationContainer
(多くのコンテンツがあります:div relatedInformation> etc ...)
これは私が使用したコードです:
<?php
$url = "http://www.hm.com/gb/product/05427";
libxml_use_internal_errors(true);
$html = file_get_contents($url);
$dom = new DomDocument();
$dom->loadHTML($html);
$xp = new domxpath($dom);
$contentDivs = $xp->query('//div[@id="content"]')->item(0);
$numContentDivs = $xp->evaluate('count(div)', $contentDivs);
// echo $numContentDivs; // output:3 (correct)
$relatedDiv = $xp->query('//div[@id="content"]/div[2]')->item(0)->getAttribute("id");
echo $relatedDiv; // output:relatedInformationContainer (correct)
$relatedDivContent = $xp->query('//div[@id="content"]/div[2]')->item(0);
$numRelatedDivContent = $xp->evaluate('count(div)', $relatedDivContent);
echo $numRelatedDivContent; // output:0 (incorrect!!! it should output 1)
?>
より単純な方法を使用しましたが、同じ結果になりました。
<?php
$url = "http://www.hm.com/gb/product/05427";
$doc = new DOMDocument();
$load = @$doc->loadHTMLFile($url);
echo $doc->saveHTML();
?>
なぜこれが起こるのか、そして解決策があれば、誰かが私に説明してくれれば幸いです。ありがとう。