2014-02-13 71 views
0

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

我已经试过

<?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从那个特定的URL的价格,它得到了什么都可能是错误的?

+0

欢迎SO!这个网站的目的是为了帮助编程问题,但希望自己的一些努力。如果你发布了一些代码,你已经尝试过,并提出了一个特定的陷阱/问题,我们可以提供帮助,但不幸的是,我们无法一步一步指导你完成任何事情。 – giorgio

+0

谢谢giorgio!我正在寻找一个示例工作脚本,因为我没有编程经验。这是我想在我的网站上实现的东西。我在网上发现了一些脚本,但没有一个脚本似乎工作。我确定如果某人发布了一个工作示例,我可以从中学到很多东西,并知道为什么我以前的尝试失败了 – user3305796

+0

对不起,但不能帮助:)我们不在这里做脚本请求,甚至没有示例脚本。不过,我们伟大的朋友[Google](https://www.google.com/search?q=scrape+site+dom+with+xpath)在这方面帮助很大。最重要的结果就是SO的另一个问题。所以,请先尝试一下自己,足以找到!然后,在一些试验和错误回来后,您将无法修复特定问题或错误代码。 – giorgio

回答

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/ & http://schema.org/docs/gs.html了解更多信息: