2014-02-13 97 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瞭解更多信息: