需要使用xpath从电子商务网站获取价格

时间:2014-02-13 11:42:41

标签: php mysql xpath

我需要使用Dom和XPath从电子商务网站中提取特定产品的价格,并将其保存到MySQL数据库。

我试过了

<?php
$html = new DOMDocument();
@$html->loadHtmlFile('http://www.flipkart.com/samsung-galaxy-star-pro-s7262/p/itmdqq6zfh7y7enm?pid=MOBDQ22YUJ8ZFXKW&srno=b_1&ref=0545bfb1-043b-479f-aca2-a468e03f0c34');
$xpath = new DOMXPath( $html );
*$nodelist = $xpath->query("id('topsection')/x:div[3]/x:div[2]/x:div[1]/x:div/x:div[1]/x:div/x:span");*
foreach ($nodelist as $n){
echo $n->nodeValue."\n";
}
?>

此代码适用于获取网址,网页标题等内容。

但是当我尝试使用xpath从特定网址获取价格时,它什么都没有。可能出错了什么?

1 个答案:

答案 0 :(得分:0)

由于该网站使用了一些微数据,您可以在查询中使用这些微数据 这样你就不会依赖于标记结构了:

$query = $xpath->query("//*[contains(@itemprop, 'price')]");

//loop over the results accessing the content attribute
foreach ($query as $result) {
    var_dump($result->getAttribute('content'));
}

//or
echo sprintf(
  "%s %s",
  $query->item(0)->getAttribute('content'),
  $query->item(1)->getAttribute('content')
);

http://dev.w3.org/html5/md-LC/&amp; http://schema.org/docs/gs.html了解更多信息: