我为automoto网站创建了一个刮刀,首先我想要获得所有制造商,之后每个制造商的所有模型链接,但是下面的代码我只得到列表中的第一个模型。为什么呢?
<?php
$dom = new DOMDocument();
@$dom->loadHTMLFile('http://www.auto-types.com');
$xpath = new DOMXPath($dom);
$entries = $xpath->query("//li[@class='clearfix_center']/a/@href");
$output = array();
foreach($entries as $e) {
$dom2 = new DOMDocument();
@$dom2->loadHTMLFile('http://www.auto-types.com' . $e->textContent);
$xpath2 = new DOMXPath($dom2);
$data = array();
$data['newLinks'] = trim($xpath2->query("//div[@class='modelImage']/a/@href")->item(0)->textContent);
$output[] = $data;
}
echo '<pre>' . print_r($output, true) . '</pre>';
?>
所以我需要得到:梅赛德斯/ 100,梅赛德斯/ 200,梅赛德斯/ 300但现在我的脚本我只得到第一个链接所以梅赛德斯/ 100 ......
请帮助
答案 0 :(得分:1)
您需要遍历结果而不是仅仅取第一项:
$items = $xpath2->query("//div[@class='modelImage']/a/@href");
$links = array();
foreach($items as $item) {
$links[] = $item->textContent;
}
$data['newLinks'] = implode(', ', $links);