2012-07-16 101 views
0

我想從以下URL獲取所有圖像,並使用以下Xpath查詢,但任何時間查詢都返回null。亞馬遜產品的PHP XPath問題

網址:

http://www.amazon.com/gp/browse.html?ie=UTF8&marketplaceID=ATVPDKIKX0DER&me=A219HML0CVO0HP 

XPath查詢:

$products = $xpath->evaluate('//div[@class="productTitle"]//img'); 

回答

1

我相信你有一個太多的前鋒IMG之前斜線:

$xpath->evaluate('//div[@class="productTitle"]/img'); 

這應該與下面的HTML是目前在該鏈接:

<div id="srProductTitle_B0000CBIFG_0" class="productTitle"> 
    <a href="http://rads.stackoverflow.com/amzn/click/B0000CBIFG"> 
    <img src="http://ecx.images-amazon.com/images/I/51BZs4Gf5pL._SL160_AA160_.jpg" class="" border="0" alt="Product Details" width="160" height="160"/><br clear="all" />Weed Eater 952701594 0.065-Inch-by-200-Foot Bulk Round String Trimmer Line 
    </a> 
</div> 
+0

我單換下斜槓,但仍然我得到空值。 – 2012-07-16 12:55:11

+0

最終的問題可能是[HTML中的錯誤](http://viper-7.com/kaEFwh)。 – nickb 2012-07-16 12:57:56

+0

你是對的,它應該匹配,但它不匹配我不知道這個問題... – 2012-07-16 13:07:11

0

可能這將幫助你......

$subject = file_get_contents('http://www.amazon.com/gp/browse.html?ie=UTF8&marketplaceID=ATVPDKIKX0DER&me=A219HML0CVO0HP'); 
$string = preg_replace('/\s\s+/', '', $subject); 

preg_match_all('/<a(.*?)href="(.*?)">(.*?)<img(.*?)src="(.*?)"(.*?)class=""(.*?)border="0"(.*?)alt="Product(.*?)Details/', $subject, $result, PREG_PATTERN_ORDER); 

for ($i = 0; $i < count($result[0]); $i++) { 
    echo "<pre>"; 
    echo $result[5][$i]; 
} 

感謝..... P2C

+0

這是什麼p2c – 2012-08-06 11:34:55

+0

@HareshChaudhary ....這是我的暱稱。 – Indian 2012-08-06 11:43:11