嗨,我正在使用 cURL 从网站获取数据,我需要获取多个项目,但无法通过标签名称或 ID 获取。我已经设法整理了一些代码,这些代码将使用类名获取一个项目,方法是通过一个循环传递它,然后通过另一个循环传递它以从元素中获取文本。
我在这里有一些问题,首先是我可以看到必须有一种更方便的方法来做到这一点。第二个我需要获取多个元素并堆叠在一起,即标题、描述、标签和一个 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。