有谁知道为什么这不起作用?
foreach($html->find('tbody.result') as $article) {
// get retail
$item['Retail'] = trim($article->find('span.price', 0)->plaintext);
// get soldby
$item['SoldBy'] = trim($article->find('img', 0)->getAttribute('alt'));
$articles[] = $item;
}
print_r($articles);
答案 0 :(得分:1)
试试这个:
$html = file_get_html('http://www.amazon.com/gp/offer-listing/B002UYSHMM');
$articles = array();
foreach($html->find('table tbody.result tr') as $article) {
if($article->find('span.price', 0)) {
// get retail
$item['Retail'] = $article->find('span.price', 0)->plaintext;
// get soldby
if($article->find('img', 0)) $item['SoldBy'] = $article->find('img', 0)->getAttribute('alt');
$articles[] = $item;
}
}
print_r($articles);
答案 1 :(得分:0)
在我看来,原始代码应该可行。但是simple_html_dom经常会破坏或表现得无法预测。
我建议使用php的内置DomXPath:
$dom = new DOMDocument;
@$dom->loadHTMLFile('http://www.amazon.com/gp/offer-listing/B002UYSHMM');
$xpath = new DOMXPath($dom);
$articles = array();
foreach($xpath->query('//tbody[@class="result"]') as $tbody){
$item = array();
$item['Retail'] = $xpath->query('.//span[@class="price"]', $tbody)->item(0)->nodeValue;
$item['SoldBy'] = $xpath->query('.//img/@alt', $tbody)->item(0)->nodeValue;
$articles[] = $item;
}
print_r($articles);