php โค้ด *อ้างอิงจากโครงสร้างหน้าเว็บอเมซอน ในปัจจุบัน 27.10.55
อันนี้จะถึงข้อมุลสินค้าในหน้าค้นหา แสดงหน้าแรกน่ะครับ หน้าถัดไปลองเอา url มาใส่ดูครับ
การทำงานของโปรแกรม ไม่มีไรมากครับ ดึง html จาก url ด้วย file_get_contents
จากนั้นเอามาแบ่งแยกส่วนข้อมูลด้วย explode แล้วเราก็เอาข้อมุลมาเรียงตามใจชอบ
โค้ดนี้เป้นโค้ดพื้นฐานง่ายๆครับ สามารถนำไปพัฒนาต่อไป โดยอาจะทำลิ้งไปยังหน้า detail อีกทีนึง ใช้ api ดึง ค่อยยิงไปหน้าอเมซอนอีกที
ทำให้เราประหยัด api และอาจจะทำ cache ไว้ ทำให้แสดงหน้าเว็บได้เร็วยิ่งขึ้น
<?php
$tagid = "test-20";
$kw = "hdtv led 1080p";
$url = "http://www.amazon.com/s/ref=nb_sb_ss_i_2_4?url=search-alias%3Daps&field-keywords=".urlencode($kw)."";
$content = file_get_contents($url);
$exp1 = explode('<div id="atfResults" class="list results">',$content);
$data1 = $exp1[1];
$exp2 = explode('<br clear="all">',$data1);
$count = count($exp2);
$total = $count-1;
echo '<table border="1" width="100%">';
for($i=0;$i<$total;$i++){
$_title = explode('<h3 class="newaps">',$exp2[$i]);
$_title = explode('</h3>',$_title[1]);
$_link = explode('href="',$_title[0]);
$_link = explode('">',$_link[1]);
$link = trim(strip_tags($_link[0]));
$_title = strip_tags($_title[0]);
$_title = explode('by',$_title);
$title = trim(strip_tags($_title[0]));
$by = trim(strip_tags($_title[1]));
$_asin = explode('dp/',$_link[0]);
$_asin = explode('/ref',$_asin[1]);
$asin = trim(strip_tags($_asin[0]));
$thelink = "http:///www.amazon.com/gp/offer-listing/".$asin."/?tag=".$tagid;
$_image = explode('src="',$exp2[$i]);
$_image = explode('.jpg',$_image[1]);
$image = trim(strip_tags($_image[0]));
$_order = explode('sml">',$exp2[$i]);
$_order = explode('</span>',$_order[1]);
$order = trim(strip_tags($_order[0]));
$_price = explode('<del class="grey">',$exp2[$i]);
$_price = explode('</del>',$_price[1]);
$price = trim(strip_tags($_price[0]));
$_price2 = explode('<span class="bld lrg red">',$exp2[$i]);
$_price2 = explode('</span>',$_price2[1]);
$price2 = trim(strip_tags($_price2[0]));
$_bld = explode('<span class="price bld">',$exp2[$i]);
$_bld = explode('</span>',$_bld[1]);
$bld = trim(strip_tags($_bld[0]));
$_offers = explode('<span class="grey">',$exp2[$i]);
$_offers = explode('</span>',$_offers[1]);
$offers = trim(strip_tags($_offers[0]));
$_stars = explode('class="asinReviewsSummary">',$exp2[$i]);
$_stars = explode('</div>',$_stars[1]);
$_stars = explode('<a alt="',$_stars[0]);
$_stars = explode('out of 5 stars',$_stars[1]);
$stars = trim(strip_tags($_stars[0]));
$_counts = explode('<span class="rvwCnt">(',$exp2[$i]);
$_counts = explode(')</span>',$_counts[1]);
$counts = trim(strip_tags($_counts[0]));
echo '<tr>';
echo '<td valign="top" alig="center" width="120">';
echo '<img src="'.$image.'.jpg" border="0"> ';
echo '</td>';
echo '<td valign="top">';
echo 'Title : <a href="'.$thelink.'" target="_blank">'.$title.'</a><br />';
echo 'ASIN : '.$asin.'<br />';
echo 'Price : <strike>'.$price.'</strike> <b>'.$price2.'</b><br />';
echo 'Rating : '.$stars.' ('.$counts.')<br />';
if($order){
echo ''.$order.'<br />';
}
if($bld){
echo ''.$bld.' '.$offers.'<br />';
}
echo '</td>';
echo '</tr>';
}
echo '</table>';
?>
ผลลัพธ์
ถ้าคิดว่ามีประโยชน์กด + ถ้าไม่กด x
ขอบคุณครับ