こんにちは、cURL を使用して Web サイトからデータを取得しています。複数のアイテムを取得する必要がありますが、タグ名または ID で取得できません。クラス名を使用して 1 つのアイテムを取得するコードをまとめることができました。ループを通過させてから、別のループを通過させて要素からテキストを取得します。
ここでいくつかの問題があります。まず、これを行うにはもっと便利な方法があるはずです。2 つ目は、タイトル、説明、タグ、URL リンクなど、複数の要素をまとめてスタックする必要があります。
# Create a DOM parser object and load HTML
$dom = new DOMDocument();
$result = $dom->loadHTML($html);
$finder = new DomXPath($dom);
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), 'classname')]");
$tmp_dom = new DOMDocument();
foreach ($nodes as $node)
{
$tmp_dom->appendChild($tmp_dom->importNode($node,true));
}
$innerHTML = trim($tmp_dom->saveHTML());
$buffdom = new DOMDocument();
$buffdom->loadHTML($innerHTML);
# Iterate over all the <a> tags
foreach ($buffdom->getElementsByTagName('a') as $link)
{
# Show the <a href>
echo $link->nodeValue, "<br />", PHP_EOL;
}
私はPHPだけに固執したい。